Setting environment variable before calling /var/sota/storage/docker-compose/docker-compose.yml

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello!

To ensure that the environment variable HOST_ID is correctly set before your docker-compose.yml file is read on Torizon OS, you should define the variable in a way that it is available to the Docker service at startup.

One effective method is to create a systemd service override for the Docker service to export the environment variable. Here’s how you can do it:

  1. Create a systemd override file for Docker:

    Run the following command to create an override file:

    sudo systemctl edit docker.service
    
  2. Add the environment variable to the override file:

    In the editor that opens, add the following lines:

    [Service]
    Environment="HOST_ID=your_value_here"
    

    Replace your_value_here with the actual value you want to set for HOST_ID.

  3. Reload the systemd daemon and restart Docker:

    After saving and closing the editor, run the following commands to apply the changes:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

This method ensures that the HOST_ID environment variable is set in the environment of the Docker service, making it available to any containers started by docker-compose that reference this variable.

If you need the variable to be dynamic or set at runtime, consider using a script to export the variable before starting the Docker service, or modify the docker-compose.yml to use a .env file located in the same directory as the docker-compose.yml. This file should contain the line HOST_ID=your_value_here.

By following these steps, the HOST_ID variable should be correctly passed to your container when it starts.

Best regards,
Toradex AI Assistant.

Please, also check if these links can help you solve your problem:

How to pass environment variables to torizon.