ara*_*lar 5 docker docker-compose
我在从我的“主”( ) 服务调用某些 Docker Compose 服务中应该定义的内容时遇到问题web
。我有以下docker-compose.yml
文件:
version: '2'
services:
db:
image: postgres
volumes:
- postgres-db-volume:/data/postgres
pdftk:
image: mnuessler/pdftk
volumes:
- /tmp/manager:/work
ffmpeg:
image: jrottenberg/ffmpeg
volumes:
- /tmp/manager:/files
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
- /tmp/manager:/files
ports:
- "8000:8000"
depends_on:
- db
- pdftk
- ffmpeg
volumes:
postgres-db-volume:
Run Code Online (Sandbox Code Playgroud)
我可以完美地使用db
from web
,但不幸的是不能使用pdftk
or (这些只是我运行shellffmpeg
时未定义的命令行实用程序):web
manager$ docker-compose run web bash
Starting manager_ffmpeg_1
Starting manager_pdftk_1
root@16e4b755172d:/code# pdftk
bash: pdftk: command not found
root@16e4b755172d:/code# ffmpeg
bash: ffmpeg: command not found
Run Code Online (Sandbox Code Playgroud)
我如何获得pdftk
并在服务ffmpeg
中定义web
?是depends_on
不是合适的指令?我是否应该扩展web
的 Dockerfile 来调用安装在其他两个服务中找到的内容的入口点脚本(尽管这似乎会适得其反)?
web
尝试在添加pdftk
和后删除并重建服务ffmpeg
,但这并没有解决问题。
我能做些什么?
谢谢你!
看起来像是对“depends_on”的误解。它用于设置容器的启动顺序。
例如:在Web服务器之前启动数据库等。
如果您想访问安装在其他容器中的工具,则必须打开 ssh 连接,例如:
ssh pdftk <your command>
Run Code Online (Sandbox Code Playgroud)
但我会将 nessecary 工具安装到 Web 容器映像中。扩展 Dockerfile 以安装这两个工具应该可以解决问题。
归档时间: |
|
查看次数: |
1449 次 |
最近记录: |