我想做这样的事情,我可以按顺序运行多个命令。
db:
image: postgres
web:
build: .
command: python manage.py migrate
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
发布于 2021-01-06 02:25:15
最干净的?
---
version: "2"
services:
test:
image: alpine
entrypoint: ["/bin/sh","-c"]
command:
- |
echo a
echo b
echo c
发布于 2016-08-06 16:21:30
你可以在这里使用入口点。docker中的入口点在命令之前执行,而命令是容器启动时应该运行的默认命令。因此,大多数应用程序通常在入口点文件中携带安装程序,最后才允许命令运行。
制作一个外壳脚本文件可以是docker-entrypoint.sh
(名字无关紧要),其中包含以下内容。
#!/bin/bash
python manage.py migrate
exec "$@"
在docker-compose.yml文件中,将其与entrypoint: /docker-entrypoint.sh
一起使用,并将命令注册为command: python manage.py runserver 0.0.0.0:8000
P.S :不要忘记将docker-entrypoint.sh
与您的代码一起复制。
发布于 2015-07-10 03:30:50
另一个想法是:
如果像本例一样构建容器,只需在其中放置一个启动脚本,并使用命令运行它。或者将启动脚本挂载为卷。
https://stackoverflow.com/questions/30063907
复制相似问题