There are a number of options for doing this, depending on security requirements, preferences, etc. Here are a few options:
When finished, you can then run docker logs -f learning-lab to trail the logs of the running application, to ensure that it has started successfully.
docker create and docker cpYou can create a Docker container without running it, then copy a .env file defining your environment variables into the container. Then start the container's default command by running docker start <container>.
# Create the container, but don't start it yet
docker create --name learning-lab \
--restart unless-stopped \
-p 3000:3000 \
learning-lab
# Copy the .env file from the host into the container
docker cp .env learning-lab:/usr/src/learning-lab/.env
# Start the container
docker start learning-lab
This is the recommended path because it securely stores your environment variables without exposing them in docker inspect, while still providing all the necessary information.
--env-file flag in docker runYou can use the --env-file flag to run the Docker image with a .env file included. Note that this may expose your container's environment variables to external services that run docker inspect on your container.
$ docker run --env-file ./env learning-lab-e flag to add them one-by-one in docker runBy using the -e flag in your docker run command, you can inject each environment variable:
$ docker run -e APP_ID=1 -e WEBHOOK_SECRET=shhhimasecret learning-lab