我想做这样的事情,我可以在以下代码中运行多个命令:
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
我如何执行多个命令?
谢了。
我建议使用<code>sh<code>而不是<code>bash<code>因为它在大多数基于Unix的映像(alpine等)上更容易使用。
下面是一个< code>docker-compose.yml的示例:
version: '3'
services:
app:
build:
context: .
command: >
sh -c "python manage.py wait_for_db &&
python manage.py migrate &&
python manage.py runserver 0.0.0.0:8000"
这将按顺序调用以下命令:
python管理。py wait_for_db
-等待数据库准备就绪python管理。py migrate
-运行任何迁移python管理。py runserver 0.0.0:8000
-启动我的开发服务器我在一个单独的临时容器中运行启动前的东西,比如迁移,就像这样(注意,组合文件必须是版本“2”类型):
db:
image: postgres
web:
image: app
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
depends_on:
- migration
migration:
build: .
image: app
command: python manage.py migrate
volumes:
- .:/code
links:
- db
depends_on:
- db
这有助于保持清洁和分离。需要考虑的两件事:
>
您必须确保正确的启动顺序(使用depends_on)。
您希望避免多次构建,这可以通过第一次使用构建和映像对其进行标记来实现;你可以引用其他容器中的图像。
想通了,使用bash-c
。
例:
command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
多行中的相同示例:
command: >
bash -c "python manage.py migrate
&& python manage.py runserver 0.0.0.0:8000"
或者:
command: bash -c "
python manage.py migrate
&& python manage.py runserver 0.0.0.0:8000
"
问题内容: 我想做这样的事情,我可以依次运行多个命令。 问题答案: 想通了,使用 。 例: 多行中的相同示例: 要么:
问题内容: 我试图在一行中合并多个Linux命令以执行部署操作。例如 问题答案: 如果仅在上一个命令成功的情况下才执行每个命令,请使用运算符将它们组合: 如果其中一个命令失败,则将不执行其后的所有其他命令。 如果要执行所有命令而不管先前的命令是否失败,请使用分号将它们分开: 在您的情况下,我想您希望第一种情况下,下一条命令的执行取决于上一条命令的成功。 您还可以将所有命令放在脚本中,然后执行该脚本
我是maven的新手,我想同时执行2个java文件。我在StackOverflow中读了几篇文章,因为我对maven的了解有限,所以我不明白如何做到这一点。我在这里附加了我的pom.xml文件,我在mac终端中使用的命令行是: mvn编译执行:Java-dexec . main class = " org . parallel . parse thread 1 " 我有另一个名为ParseThre
我希望在中运行多个命令,如下所示: 那么如何保存上一个命令的状态并将其用于下一个命令??
问题内容: def exec_command(self, command, bufsize=-1): #print “Executing Command: “+command chan = self._transport.open_session() chan.exec_command(command) stdin = chan.makefile(‘wb’, bufsize) stdout = c