用启动脚本build立docker容器

我试图build立docker容器应该包括启动脚本通过容器的/etc/my_init.d目录。 我很难find任何文件如何做到这一点。 这是我的yaml文件的相关部分:

- name: Create container docker: name: myserver image: "{{ docker_repo }}/myserver:{{ server.version }}" state: started restart_policy: always docker_api_version: 1.18 registry: "{{ docker_repo }}" username: "{{ registry_user }}" password: "{{ registry_password }}" links: - "mywebservices" ports: - "8000:8000" - "9899:9899" volumes: - "{{ myserver_home_dir }}/logs:/var/log/my_server" env: MY_ENVIRONMENT: "{{ my_environment }}" when: myserver_action == "create" or (myserver_action == "diff-create" and myserver.changed) or myserver_action == "update" 

我应该在这里添加什么来告诉可以在构build期间将我的文件放入容器的/etc/my_init.d中?

首先,你不能build立容器(你可以启动它),你build立图像。

其次, docker模块已被弃用,使用docker_image来构build图像。

您应该将您的文件复制到生成目录(使用copysynchronize模块),例如:

 /tmp/build 

然后创buildDockerfile ,将它们从build立目录,并添加到您的图像。

在那之后调用docker_image

 docker_image: path: /tmp/build name: myimage 

最后启动你的容器:

 docker_container: image: myimage name: mycontainer 

不确定是否相关,因为我不知道你的启动Ansible内容在做什么,但是可能值得看看Ansible Container项目。

https://github.com/ansible/ansible-container

您可以使用Ansibleangular色(而不是Dockerfile)来构build容器映像,在本地进行编排,并将其部署到生产Kubernetes或Red Hat OpenShift。

Interesting Posts