怎么利用docker-compose,在容器启动后执行自定义的shell命令,能不能在docker-compose.yml中配置啊? 5C

我想利用docker-compose同时启动多个容器,然后在每个容器启动后去执行一个自定义的
shell脚本,容器全部启动后执行也可以,主要是想在shell命令中能读取 .env中的配置项。
不知道在docker-compose.yml中能不能实现。
不明白 docker-compose中的command怎么使用

1个回答

有没有大佬解答一下啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
docker-compose启动容器后自动退出
List item
利用 docker-compose 配置 php 开发环境
记录一次利用 docker-compose 搭建开发环境过程,避免重复配置 安装 docker 与 docker-compose docker 在 win 和 macOS 都有安装包,linux 根据版本和官网教程可以安装。 docker-compose 安装参照官方教程。 docker-compose.yaml version: "3" services: php: image: php:...
docker网关冲突(启动docker、启动容器、docker-compose启动容器后,断网问题)
部署项目时,由于是在甲方公司部署,一切都是甲方提供, 甲方提供的服务器是 网关172.xx  的。 部署docker时,忽视了docker默认docker0网桥的网关也是172.xx 所以就出现了 启动docker后就直接断网,远程连接不上服务器了,重启服务器也可以链接上,重启docker又连接不上。 可以设置docker默认网关 : vim  /etc/docker/daemon.js...
docker-compose自定义网络,固定容器ip地址
docker-compose是docker的一个编排工具,相对于命令模式创建网络,容器等。使用配置文件相对来说更方便,可追溯问题。 直接粘贴docker-compose.yml文件 version: '2' services: nginx: image: nginx:1.13.12 container_name: nginx restart: always...
docker-compose编排动态配置的pbsPro容器集群
简介 docker-compose是一种容器编排工具,可以将多个docker容器关联部署。通过yaml文件,可以描述应用的架构,如使用什么镜像、数据卷、网络、绑定服务端口等等,然后再用一条命令就可以管理所有的服务(如启动、停止、重启、日志监控等等),可以鼎泰扩展容器的规模等等,和docker swarm非常相似又有区别。 本次博客将对前一节利用Dockerfile编排pbspro集群进行升级,
怎么能在ASP中执行 可执行文件啊?
<% rndim ylj,ywj,path,Shell,rarcomm,RetCode,cmd,comm,fsornpath="D:\web\"rnylj=Server.mappath("temp")&"\"rnywj=Server.mappath("212.rar")rnSet Shell = Server.CreateObject("WScript.Shell")rnrarcomm= "D:\web\cmd.exe /c "&path&"rar.exe x -t -o+ -p- "rncmd=rarcomm&ywj&" "&yljrnRetCode = Shell.Run(cmd,1, True)rn%> rn像这个,我已经把 rar.exe 和 cmd.exe 放进了d:\web\目录中,但是在浏览器中执行完后,没有反应啊,这是怎么回事呢?rnrn还有在
能不能在dll中启动两个线程
如果可以, 要注意那些问题
能不能在WINFORM中执行一个可执行程序?
RTrnrn相当于这个可执行程序直接在WINFORM中运行,而不是单独作为一个进程运行??
容器组织服务docker-compose
序言    在使用容器的时候,我们总是要运行很多的容器,才能组成一个服务,例如当写一个python程序的时候,使用了redis,那么就要运行两个容器,两个容器的之间的数据交互使用link进行连接,而在一台主机上,每次新建一个环境,都要进行docker run然后一大堆参数,对于记忆来说,是一种挑战。    docker-compose是一种用来运行所有有依赖关系的容器的工具,使用一个命令即可运行所
docker-compose 容器挂载权限问题
       项目中遇到docker-compose启动springboot的应用,挂载的日志目录没有权限写入的问题;后来查了很多资料,终于有点眉目了,做个记录,希望遇到的朋友少踩点坑~; 1.问题描述         项目框架是使用jhipster生成的,现在需要把生成的日志挂载出去,以便查看日志记录;首先修改下logback-spring.xml的配置,将系统生成的日志文件都存放在项目的l...
docker-compose.yml
使用docker容器快速构建java开发环境化: 一键部署好 redis  mongo mysql zookeeper常用软件. 前提准备 工具: 容器引擎:docker 容器编排工具:docker-compose
能不能在执行增删改之前执行触发器??
比如rncreate trigger _namernon _table for after updaternasrn ......rn我想在update 之前就执行as后的语句,可不可以??
docker-compose 配置自定义网络和静态 ip 示例
新地址:https://blog.iaiot.com/docker-compose-custom-network.html version: '3.1' services: web: image: haojiliang/nginx-php-fpm-alpine:v1.15.7 container_name: "web_container" ports: ...
vim中执行shell命令
vi中执行shell命令有两种显示方式: 在一个临时缓冲区显示命令执行的结果 将命令执行的结果粘贴在光标所在行的下一行,或者指定行号粘贴。 1 在一个临时窗口显示命令执行的结果vi命令 :!command 例如: vi执行命令 :!ls 结果: vi版本不同,显示的方式不同,在这里的临时缓冲区还可以看到上次执行命令的结果2 将命令执行的结果粘贴在光标所在行的下一行vi中执行
Python脚本中执行shell命令
如下图,其中最后一个0是这个命令的返回值,为0表示命令执行成功; popen():想要获取命令执行的结果,但是没有命令的执行状态。 commands:可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位。commands.getoutput('ls')这个方法只返回执行结果result不返回状态。 在python中调用shell脚本 hello.sh 下面的512是返回的状态码,如果
在python中执行shell命令
1.difflib模块 import difflib file1 = ‘/etc/passwd’ file2 = ‘/tmp/passwd’ with open(file1) as f1, open(file2) as f2: text1 = f1.readlines( ) text2 = f2.readlines( ) d = difflib.HtmlDiff(...
Spring容器启动配置
Spring容器启动配置 什么时候spring容器启动?其实就是程序中执行加载 web.xml配置文件的时候。 Spring可以通过(Servlet)org.springframework.web.context.ContextLoaderServlet和Listener(org.springframework.web.context.ContextLoaderListener)两个类作...
Docker-compose 多容器冲突解决方法
问题描述 最近在配置 Docker-compose 时经常出现冲突问题,这里贴出解决方法 报错如下 WARNING: Found orphan containers (blog_server) for this project. If you removed or renamed this service in your compose file, you can run this command...
容器技术|Docker三剑客之docker-compose
三剑客简介 docker-machine docker技术是基于Linux内核的cgroup技术实现的,那么问题来了,在非Linux平台上是否就不能使用docker技术了呢?答案是可以的,不过显然需要借助虚拟机去模拟出Linux环境来。 docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术,甚至可以通过指定driver来定制虚拟机的...
docker-compose 重新构建容器错误
使用docker-compose up -d --force-recreate重新构建容器,结果导致原来的容器被重命名,新的容器没起来,再次执行daemon返回容器名字冲突,但是docker ps -a查看使用该名字的容器并不存在rn查看docker daemon日志发现有内存分配失败的错误:rntime="2016-11-24T15:07:51.639586229+08:00" level=error msg="Clean up Error! Cannot destroy container e0257e6a0dbedc0d50baad0855e73a71f15cc6c153b0e029c905c4b04faebc54: nosuchcontainer: No such container: e0257e6a0dbedc0d50baad0855e73a71f15cc6c153b0e029c905c4b04faebc54"rntime="2016-11-24T15:07:51.639622339+08:00" level=error msg="Handler for POST /v1.22/containers/create returned error: open /data/docker/overlay/4517ac4860e82c0e0b4283a5a08be8618518efc419b05e3c46e42ca92d10703e-init/merged/dev/console: cannot allocate memory"
执行shell命令
首先将shell命令命名为.sh文件 将上面的代码保存为test.sh,并 cd 到相应目录: chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本 如果报错/bin/bash^M: bad interpreter: No such file or directory 出现上面错误的原因之一是脚本文件是DOS格式的, 即每一行的行尾以\
自定义Shell命令
以自定义ll命令为例: 1. 编辑.bash_profile文件 命令如下: liuhongdeMacBook-Pro:~ liuhong$ vim .bash_profile 打开之后在末尾添加: alias ll='ls -alF' 然后保存退出 2. 输入source .bash_profile 命令如下: liuhongdeMacBook-Pro:~ liuh...
自定义spring容器启动监听器
public class ConfigListern implements ApplicationListener { public void onApplicationEvent(ApplicationEvent event) { if (ContextRefreshedEvent.class.getName().equals(event.getClass().getN
基于docker-compose构建yapi容器
docker-compose # 使用版本号为3.6 version: '3.6' services: # 声明yapi服务 yapi: # 选择的镜像 image: crper/yapi:latest # 容器的自定义名字,也就是命令行的--name container_name: yapi # 不用: 则只是暴露内部端口,用了就是映射外部...
使用docker-compose批量构建容器(下)
课程围绕电商项目大觅网的业务场景,基于微服务架构设计原则及虚拟化技术Docker Compose搭建项目开发及测试环境。其中包括JDK、Tomcat、Jenkins、Redis、MySQL、Mycat、ELK、Kafka、RabbitMQ、Sonar等
docker-compose管理多个容器/服务
1, 管理单个服务:mysql 2, 管理多个服务:web + mysql 1, docker-compose 启动mysql vim docker-compose.yml version: '3' services: mysql-docker: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: '1...
SQL UPDATE执行后,能不能在第一时间内恢复?
急啊
用c写cgi程序,不能在cgi程序中执行shell命令???
我用c写的cgi程序,想再cgi程序中用system执行一个shell命令,在后台直接运行可以执行,但是从网页点击按钮来触发这个cgi程序,发现system不能执行shell命令,这是为什么?请各位大侠指点
利用SharpSsh远程执行linux的shell命令
利用SharpSsh远程执行linux的shell命令rnrnhttp://blog.csdn.net/ccyyss/article/details/40348257rnrn这个网站中,我要把它换成Web版的,要怎么搞?而且,这里好像有两个Main主入口?我有点蒙,怎么弄
spring4 + quartz2.2.3 配置项目启动后执行
在spring配置文件中加入 &lt;!-- 开始调度配置 --&gt; &lt;!-- 线程执行器配置,用于任务注册 --&gt; &lt;bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"&gt; &lt;property name="corePool...
利用commands模块执行Linux shell命令
利用commands模块执行Linux shell命令 用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要函数: 1. commands.getoutput('shell command') 执行shell命令,返回结果
recovery 升级过程执行自定义shell命令
有时候我们需要,在升级的过程中,执行一些shell命令,来完成我们的一些需求,利用升级过程,进行一些特殊化的操作,思路如下:   第一:     把我们需要执行的命令,写成一个test.sh脚本,然后在recovery串口环境下,source test.sh,保证我们的sh能够正常运行。   第二:     把test.sh打包到升级包update.zip的根目录中去,主要是修改b
能不能在services里面启动两个线程
一个windows服务,能不能在OnStart事件中启动两个线程,这样写可以吗?rn[code=C#]rn protected override void OnStart(string[] args)rn rn // TODO: 在此处添加代码以启动服务。rn Thread trcheck = new Thread(new ThreadStart(Check));rn trcheck.Start();rn Thread trcheck2 = new Thread(new ThreadStart(Check2));rn trcheck2.Start();rn rn private void Check()rn rn while (true)rn rn ....rn rn rn private void Check2()rn rn while (true)rn rn ....rn rn rn[/code]
能不能在vmware下面启动系统?
我在vmware下面设定新系统, 不新建虚拟磁盘, 映射现有/dev/hda. rn启动后可以看到系统选择菜单, 也能选择windows, 只是启动到一般会出现蓝屏.rnrn不知道是什么原因? 有人成功过吗? rnrnrnfc3 x86_64 + adm3000 + vmware4.5 8848rnrnrn另外, vmware这东西什么原理? 怎么拦截系统对硬件io的访问?
能不能在程序中配置IIS(基本上是固定配置)
最好是能在VC++的程序里配置,不知道哪里有IIS接口之类的说明(有中文的话更好)
SpringBoot 容器启动执行方法和容器关闭执行方法
启动执行方法:实现ApplicationRunner接口中run方法。如果有多个实现类,而你需要他们按一定顺序执行的话,可以在实现类上加上@Order注解。@Order(value=整数值)。SpringBoot会按照@Order中的value值从小到大依次执行。关闭执行方法一种是实现DisposableBean接口,一种是使用@PreDestroy注解。@Component  public cl...
AspectJ 能不能在编译期间执行advice
我现在做的一个是一个swing的遗留项目,上面的老大要求是将界面国际化!!rnrn之前的那个程序员在代码里将类似的Jbutton.setText("****")都全部写死了!我人又懒,不想一行一行的检查代码然后再写一个resource文件!rnrn所以我就想用AspectJ,查找所有的execution (javax.swing..*+.new(..)),rnexecution (* javax.swing..*+.setToolTipText(..))这之类的调用!rnrn然后我在advice利用rnjointPoint.getSignature().getDeclaringTypeName() +"."+ jointPoint.getSignature().getName()作为key,写到相应的resource.properties文件,那样我就可以继续编写相应的key的value了!rnrn但是啊,现在的问题是,我只知道AspectJ是可以在程序运行的时候,也就是具体某个setTest()方法执行的时候捕捉到当前方法,然后我的相应的key就写入了resource.properties文件。rnrn不过swing的程序是有些界面必须要用户点击相应的按钮才初始化,这就意味着我纪录在resource.properties文件中key并不是全部我要进行国际化的key. 有相当一部分我遗漏掉了。除非用户将所有的功能都点击一边,那样我才能纪录所有的需要国际化的key值!rnrn我想问问各位老大,在编译期间除了将相应的advice植入我的代码,能不能只要查到相应的匹配的方法,就可以执行我的写入resource.properties的advice! 也就是有没有类似match(methodPattern)这样的pointCut. 而不仅仅是call,execution之类的!!rnrn小弟,谢过先!n[b]问题补充:[/b]n我现在做的一个是一个swing的遗留项目,上面的老大要求是将界面国际化!!rnrn之前的那个程序员在代码里将类似的Jbutton.setText("****")都全部写死了!我人又懒,不想一行一行的检查代码然后再写一个resource文件!rnrn所以我就想用AspectJ,查找所有的execution (javax.swing..*+.new(..)),rnexecution (* javax.swing..*+.setToolTipText(..))这之类的调用!rnrn然后我在advice利用rnjointPoint.getSignature().getDeclaringTypeName() +"."+ jointPoint.getSignature().getName()作为key,写到相应的resource.properties文件,那样我就可以继续编写相应的key的value了!rnrn但是啊,现在的问题是,我只知道AspectJ是可以在程序运行的时候,也就是具体某个setTest()方法执行的时候捕捉到当前方法,然后我的相应的key就写入了resource.properties文件。rnrn不过swing的程序是有些界面必须要用户点击相应的按钮才初始化,这就意味着我纪录在resource.properties文件中key并不是全部我要进行国际化的key. 有相当一部分我遗漏掉了。除非用户将所有的功能都点击一边,那样我才能纪录所有的需要国际化的key值!rnrn我想问问各位老大,在编译期间除了将相应的advice植入我的代码,能不能只要查到相应的匹配的方法,就可以执行我的写入resource.properties的advice! 也就是有没有类似match(methodPattern)这样的pointCut. 而不仅仅是call,execution之类的!!rnrn小弟,谢过先!rnrn不好意思刚才没有说清楚,我现在已经就是compiling time weaving 并且成功,但是我要求的是编译的时候可以进行我的文件写入的执行!不知道能不能办到??n[b]问题补充:[/b]n我现在做的一个是一个swing的遗留项目,上面的老大要求是将界面国际化!!rnrn之前的那个程序员在代码里将类似的Jbutton.setText("****")都全部写死了!我人又懒,不想一行一行的检查代码然后再写一个resource文件!rnrn所以我就想用AspectJ,查找所有的execution (javax.swing..*+.new(..)),rnexecution (* javax.swing..*+.setToolTipText(..))这之类的调用!rnrn然后我在advice利用rnjointPoint.getSignature().getDeclaringTypeName() +"."+ jointPoint.getSignature().getName()作为key,写到相应的resource.properties文件,那样我就可以继续编写相应的key的value了!rnrn但是啊,现在的问题是,我只知道AspectJ是可以在程序运行的时候,也就是具体某个setTest()方法执行的时候捕捉到当前方法,然后我的相应的key就写入了resource.properties文件。rnrn不过swing的程序是有些界面必须要用户点击相应的按钮才初始化,这就意味着我纪录在resource.properties文件中key并不是全部我要进行国际化的key. 有相当一部分我遗漏掉了。除非用户将所有的功能都点击一边,那样我才能纪录所有的需要国际化的key值!rnrn我想问问各位老大,在编译期间除了将相应的advice植入我的代码,能不能只要查到相应的匹配的方法,就可以执行我的写入resource.properties的advice! 也就是有没有类似match(methodPattern)这样的pointCut. 而不仅仅是call,execution之类的!!rnrn小弟,谢过先!rnrn不好意思刚才没有说清楚,我现在已经就是compiling time weaving 并且成功,但是我要求的是编译的时候可以进行我的文件写入的执行!不知道能不能办到??rnrnrn我自己给出一种愚蠢的解决办法吧,我利用AspectJ的日志,添加showWeaveInfo="true" 属性,它将自动的纪录所有满足pointcut条件的被植入的方法,然后我自己需要在将此日志作进一步处理,解析其中的key到属性文件!! rnrn希望有高手解惑!!
能不能在Excel 执行 SQl 语句 vba
能不能在Excel 执行 SQl 语句 vba
能不能在客户端执行CreateActiveXObject语句?
写了一个html文件,代码如下:rnrnrn rnrnrnrnrn问题是这样的:我如果直接双击该文件图标,script语句可以正确执行,但是如果我把它放在iis目录下,然后输入网址访问,就会出现错误:Automation服务器不能创建对象。请问为什么?谢谢!!
记录,docker-compose基础配置
version: '3' services:     nginx:             image: nginx             ports:                 - '80:80'                 - '443:443'             volumes:                 - /data/nginx/conf/nginx.conf:/...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法