我有两个docker-compose服务nginx
和django
,在我的command
shell脚本中,我执行了一个构建我的静态文件的gulp任务。构建过程完成后,我想执行一个复制命令将这些文件复制到nginx容器,但我不确定要使用的命令。
django:
build:
context: .
dockerfile: ./compose/django/Dockerfile
user: django
depends_on:
- postgres
- redis
command: /gunicorn.sh
env_file: .env
nginx:
build: ./compose/nginx
depends_on:
- django
ports:
- "0.0.0.0:80:80"
#!/bin/sh
gulp build
python manage.py migrate
/usr/local/bin/gunicorn config.wsgi -w 4 -b 0.0.0.0:5000 --chdir=/app
我猜我可以在gunicorn.sh
内使用scp,但我不确定如何引用nginx
服务的IP地址。
答案 0 :(得分:2)
容器之间只需share volumes,无需实际复制文件。
有多种方法可以定义卷,但我想您不希望这些文件位于主机文件系统上。
尝试以下内容:
volumes:
- static:
django:
build:
context: .
dockerfile: ./compose/django/Dockerfile
user: django
depends_on:
- postgres
- redis
command: /gunicorn.sh
volumes:
- static:/path/to/your/static/files
env_file: .env
nginx:
build: ./compose/nginx
depends_on:
- django
volumes:
- static:/some/dir/to/serve/files/from/
ports:
- "0.0.0.0:80:80"
然后配置nginx以从/some/dir/to/serve/files/from/
提供静态文件。