SERVER_LISTEN_URI: "tcp://0.0.0.0:9000" #执行多条指令 command: /bin/bash -c "cp /app/dtest/config.default.yml /app/config.yml && python -u /app/dtest/tcc.py" #目录映射 volumes: - ..:/app - ./tmp:/var/tmp ports: - "9000:9000" links: - redis

另一个示例:

command: /bin/bash -c " while true; do sleep 1; done"

方式二:/bin/bash -c 配置文件方式

1 串行运行

如果这几个命令是没有要求并行运行,则配置如下:

command:

如上配置会按顺序执行cmd1,之后再执行cmd2,之后cmd3。对于可以串行的命令,这样即可。

2 并行运行

有时候想配置几个常驻脚本在docker,希望这几个脚本一起跑起来(并行运行),上述1的办法就不行了。
Linux 把命令行扔后台运行的一个办法就是在后面加上 &,但在docker 是否可以如下这样配置?

command:

上面是不正确的,在配置时候我就踩了这样的坑,docker 运行起来,就马上结束了。猜测是像程序开发的开多线程一样,“主线程开了线程,不等线程,自己就退出了,由于主线程退出,进程也跟着退出了,导致一个线程都没有跑起来”。

上面cmd 都是要求常驻的,没有顺序要求,那么在命令中,前面的几个都加上&,最后一个命令不加,也就是前面几个扔后台运行,最后一个直接运行,使得docker 和最后一个cmd 一样“生命周期”,这样就做到几个cmd 并行运行了。正确配置如下:

command:
                    方式一:/bin/bash -c 字符串方式version: '2'services:  prj1:    build:      context: .      dockerfile: Dockerfile.prj1    environment:      SERVER_LISTEN_URI: "tcp://0.0.0.0:9000"    #执行多条指令    command: /bin/bash -c "cp /app/dtest/config.default.yml /ap
				
Podman撰写 带有后端的 docker-compose的实现。 该项目的主要目标是能够未经修改且无根地运行docker-compose.yml 。 该项目旨在为docker-compose提供docker-compose替换,并且在某些情况下非常有用,因为: 可以无根运行 仅取决于podman和Python3和 没有守护程序,没有设置。 开发人员可以使用它来使用单个熟悉的YAML文件运行单机容器化堆栈 对于类似生产的单机集装箱化环境,请考虑 对于真实的东西(多节点集群),请检查任何生产的OpenShift / Kubernetes发行版,例如 。 该项目仍在开发中。 从PyPI安装最新的稳定版本: pip3 install podman-compose 通过--user可以在没有root用户的情况下安装在普通用户家中。 或来自GitHub的最新开发版本:
在网上找了很多都是docker-compose的关键词解释一大堆,今天我们来看看这个command里面的更新docker配置文件更改的问题 标准的运行jar包的方式设置最小最大内存 command: java -jar -Xmx250m -Xms250m -Dmode=pc /home/app.jar 但是如果要更新数据库账号密码,redis账号密码等,需要更新你的原先配置参数, command: - java - -jar - -Xmx250m 定义和运行多个 Docker 容器的应用,一个项目往往包含多个容器,每次重启都需要手动重启多个容器,显得太不简洁,而docker-compose就是一个完美的解决方案。 两个重要的概念 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义...
command: /bin/bash -c " while true; do sleep 1; done" 使用dockr-compose command执行多条指令,有的时候在项目中需要使用目前知道的有以下两种方式 version: '2' services: prj1: build: context: . dockerfile: Dock...
转自别人: command: /bin/bash -c " while true; do sleep 1; done" 使用dockr-compose command执行多条指令,有的时候在项目中需要使用目前知道的有以下两种方式 version: ‘2’ services: prj1: build: context: . dockerfile: Dockerfile.prj1 environment: SERVER_LISTEN_URI: “tcp://0.0.0.0:9000” #执行多条指令