首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Docker-Compose,如何执行多个命令

使用Docker-Compose,如何执行多个命令
EN

Stack Overflow用户
提问于 2015-05-06 05:53:37
回答 12查看 664.4K关注 0票数 738

我想做这样的事情,我可以按顺序运行多个命令。

代码语言:javascript
复制
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
EN

回答 12

Stack Overflow用户

发布于 2021-01-06 02:25:15

最干净的?

代码语言:javascript
复制
---
version: "2"
services:
  test:
    image: alpine
    entrypoint: ["/bin/sh","-c"]
    command:
    - |
       echo a
       echo b
       echo c
票数 46
EN

Stack Overflow用户

发布于 2016-08-06 16:21:30

你可以在这里使用入口点。docker中的入口点在命令之前执行,而命令是容器启动时应该运行的默认命令。因此,大多数应用程序通常在入口点文件中携带安装程序,最后才允许命令运行。

制作一个外壳脚本文件可以是docker-entrypoint.sh (名字无关紧要),其中包含以下内容。

代码语言:javascript
复制
#!/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与您的代码一起复制。

票数 23
EN

Stack Overflow用户

发布于 2015-07-10 03:30:50

另一个想法是:

如果像本例一样构建容器,只需在其中放置一个启动脚本,并使用命令运行它。或者将启动脚本挂载为卷。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30063907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档