Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在docker compose中使用docker图像指定环境变量_Docker_Docker Compose_Environment Variables_Dockerfile_Github Actions - Fatal编程技术网

如何在docker compose中使用docker图像指定环境变量

如何在docker compose中使用docker图像指定环境变量,docker,docker-compose,environment-variables,dockerfile,github-actions,Docker,Docker Compose,Environment Variables,Dockerfile,Github Actions,我有一个工作流,我构建了一个特定的映像,然后(在推送到ECR repo,然后将其拉到AWS服务器上之后)使用docker compose文件运行它。我的docker compose文件如下所示: 版本:“3.8” 服务: 网状物: 图片:/my repo:latest 命令:gunicorn vms.wsgi:application--bind 0.0.0.0:8000 揭露: - 8000 nginx: 生成:../nginx 端口: - 1337:80 取决于: -网 我的dockerfi

我有一个工作流,我构建了一个特定的映像,然后(在推送到ECR repo,然后将其拉到AWS服务器上之后)使用docker compose文件运行它。我的docker compose文件如下所示:

版本:“3.8”
服务:
网状物:
图片:/my repo:latest
命令:gunicorn vms.wsgi:application--bind 0.0.0.0:8000
揭露:
- 8000
nginx:
生成:../nginx
端口:
- 1337:80
取决于:
-网
我的dockerfile是这样的:

FROM python:3
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
EXPOSE 8000
CMD [ "python", "manage.py", "runserver", "0.0.0.0:8000"]
      - name: Start new container
        run: ssh staging 'cd my_dir; sudo docker-compose --env-file ~/code/secrets/.env -f docker-compose.prod.yml up -d'
我希望能够在我的docker compose中执行类似的操作:

version: "3.8"
services:
  web:
    image: <my-aws-server>/my-repo:latest
    env: SECRET_PASSWORD #note change here
    command: gunicorn vms.wsgi:application --bind 0.0.0.0:8000
    expose:
      - 8000
  nginx:
    build: ../nginx
    ports:
      - 1337:80
    depends_on: 
      - web
编辑:在我的GitHub操作中,我尝试了如下操作:

FROM python:3
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
EXPOSE 8000
CMD [ "python", "manage.py", "runserver", "0.0.0.0:8000"]
      - name: Start new container
        run: ssh staging 'cd my_dir; sudo docker-compose --env-file ~/code/secrets/.env -f docker-compose.prod.yml up -d'

但这似乎不起作用。我有什么地方做错了吗?或者,如果在预构建的映像中使用该文件中的任何环境变量,那么这是否应该按预期工作?(我没有再次构建它,只是启动图像,从docker compose文件中可以明显看出)。

env_file
指令。它将在运行时将变量从指定文件传递到容器

参考:


啊,是啊!所以我在我的GitHub操作代码中尝试了这一点(只是在上面编辑了它),但它似乎不太管用。我遗漏了什么吗?该指令是针对您的
docker compose.yml
啊,我刚刚查看了您链接的文档,非常感谢,这正是我要找的!