在下载和旋转预构建的Docker Image后运行代码的最佳做法是什么?例如,我使用Bitnamis RabbitMQ图像来旋转运行RabbitMQ的容器(显然):https://hub.docker.com/r/bitnami/rabbitmq
在容器启动并且RabbitMQ正在运行之后,我想下载并启用一个额外的RabbitMQ-Plugin。作为Docker-Newbie我遇到两个问题:
现在,我旋转容器,等待30秒并在终端上手动执行命令,如
docker exec -it wget -O /plugins/folder/newplugin.ez https://pluginlocation.com/newplugin.ez&& rabbitmq-plugins启用newplugin`
这样可行,但有没有推荐的方法一次性完成所有这些操作?我尝试在进程的基础上使用我自己的Dockerfile:
FROM bitnami / rabbitmq:latest
RUN wget -O /plugins/folder/newplugin.ez https://pluginlocation.com/newplugin.ez
运行rabbitmq-plugins启用newplugin
但是在这一点上,RabbitMQ尚未初始化,因此启用插件失败。
最佳-act
答案 0 :(得分:1)
您可以在不使用void *bar(){
400846: 55 push %rbp
400847: 48 89 e5 mov %rsp,%rbp
std::cout << "bar" << std::endl;
40084a: be 84 09 40 00 mov $0x400984,%esi
40084f: bf 60 10 60 00 mov $0x601060,%edi
400854: e8 b7 fe ff ff callq 400710 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>
400859: be 30 07 40 00 mov $0x400730,%esi
40085e: 48 89 c7 mov %rax,%rdi
400861: e8 ba fe ff ff callq 400720 <_ZNSolsEPFRSoS_E@plt>
}
400866: 90 nop
400867: 5d pop %rbp
400868: c3 retq
0000000000400869 <_Z3foov>:
void foo(){
400869: 55 push %rbp
40086a: 48 89 e5 mov %rsp,%rbp
std::cout << "foo" << std::endl;
40086d: be 88 09 40 00 mov $0x400988,%esi
400872: bf 60 10 60 00 mov $0x601060,%edi
400877: e8 94 fe ff ff callq 400710 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>
40087c: be 30 07 40 00 mov $0x400730,%esi
400881: 48 89 c7 mov %rax,%rdi
400884: e8 97 fe ff ff callq 400720 <_ZNSolsEPFRSoS_E@plt>
}
400889: 90 nop
40088a: 5d pop %rbp
40088b: c3 retq
000000000040088c <main>:
int main(void){
40088c: 55 push %rbp
40088d: 48 89 e5 mov %rsp,%rbp
foo();
400890: e8 d4 ff ff ff callq 400869 <_Z3foov>
bar();
400895: e8 ac ff ff ff callq 400846 <_Z3barv>
return 0;
40089a: b8 00 00 00 00 mov $0x0,%eax
}
40089f: 5d pop %rbp
4008a0: c3 retq
选项的正在运行的代理的情况下启用插件
所以你的--offline
可能是:
Dockerfile
顺便说一句,在一层中做相关事情(例如下载和启用插件)是good practice。