簡體   English   中英

使用Ansible來配置Docker容器

[英]using ansible for provisioning docker containers

您好,我正在使用下面的docker文件構建映像。 它運行的Maven手冊完美無缺,但是當開始運行聲納手冊時,它會掛起並且什么也沒有發生。只有在手冊中不同的是,聲納手冊具有重新啟動語句。這可能是問題的原因。我已經測試了每本手冊,並且每本在內部完美運行容器。 有什么辦法可以同時查看容器日志和構建映像時所有Ansible所做的事情。到目前為止,Docker僅在一步完成后才吐出日志。

FROM xyz.com/akathaku/cidemo:latest

MAINTAINER akathaku <akathaku@gmail.com>

USER root


ENV SCPATH /etc/supervisor/conf.d
ENV PLAYBOOKS /ansible

# RUN yum  -y update

# The daemons
RUN yum -y install supervisor
RUN mkdir -p /var/log/supervisor

# Supervisor Configuration
ADD ./supervisord/conf.d/* $SCPATH/

#Running ansible
ADD ./sonar-playbook $PLAYBOOKS/sonar-playbook
ADD ./maven-playbook $PLAYBOOKS/maven-playbook
ADD ./jenkins-playbook $PLAYBOOKS/jenkins-playbook
ADD ./tomcat-playbook $PLAYBOOKS/tomcat-playbook

WORKDIR $PLAYBOOKS
RUN ansible-playbook $PLAYBOOKS/sonar-playbook/sonar.yml -c local 
RUN ansible-playbook $PLAYBOOKS/maven-playbook/maven.yml -c local
RUN ansible-playbook $PLAYBOOKS/jenkins-playbook/jenkins.yml -c local
RUN ansible-playbook $PLAYBOOKS/tomcat-playbook/tomcat.yml -c local


# Application Code

CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisor.conf"]
EXPOSE 8080 8081 9000 9001 8086

以下是docker run的輸出

Step 1 : FROM xyz.com/akathaku/cidemo:latest
 ---> d477ceab5d3b
Step 2 : MAINTAINER akathaku <akathaku@gmail.com>
 ---> Using cache
 ---> a9c3c191aabd
Step 3 : USER root
 ---> Using cache
 ---> 24a18ddc6f49
Step 4 : ENV SCPATH /etc/supervisor/conf.d
 ---> Using cache
 ---> ea6f4dada89c
Step 5 : ENV PLAYBOOKS /ansible
 ---> Using cache
 ---> 9d42760dc51f
Step 6 : RUN yum -y install supervisor
 ---> Using cache
 ---> 7af486ce2a8c
Step 7 : RUN mkdir -p /var/log/supervisor
 ---> Using cache
 ---> a1b1c145d490
Step 8 : ADD ./supervisord/conf.d/* $SCPATH/
 ---> Using cache
 ---> f16e32135351
Step 9 : ADD ./sonar-playbook $PLAYBOOKS/sonar-playbook
 ---> 170c1dc82ffa
Removing intermediate container bfa474ef9d11
Step 10 : ADD ./maven-playbook $PLAYBOOKS/maven-playbook
 ---> 90a57735fe3b
Removing intermediate container b5f7bbb3b85d
Step 11 : ADD ./jenkins-playbook $PLAYBOOKS/jenkins-playbook
 ---> 09ab0f929f45
Removing intermediate container 7dc62423354d
Step 12 : ADD ./tomcat-playbook $PLAYBOOKS/tomcat-playbook
 ---> 13c3bb5f7aca
Removing intermediate container 4356605f503a
Step 13 : WORKDIR $PLAYBOOKS/maven-playbook
 ---> Running in 34867677f4e1
 ---> f48ffe4115db
Removing intermediate container 34867677f4e1
Step 14 : RUN ansible-playbook maven.yml -c local
 ---> Running in 4eda53bf7e00

PLAY [localhost] ************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [localhost]

TASK: [maven | Install Java 1.8 JRE] ****************************************** 
changed: [localhost]

TASK: [maven | Install Java 1.8 JDK] ****************************************** 
changed: [localhost]

TASK: [maven | lineinfile dest='/etc/profile' regexp='^#?\s*export JAVA_HOME=(.*)$' line='export JAVA_HOME=/usr/lib/jvm/java-openjdk' state=present] *** 
changed: [localhost]

TASK: [maven | lineinfile dest=/etc/profile regexp='^#?\s*export PATH=(.*)JAVA_HOME(.*)$' line="export PATH=$PATH:$JAVA_HOME/bin" state=present] *** 
changed: [localhost]

TASK: [maven | Reload profile] ************************************************ 
changed: [localhost]

TASK: [maven | Download Apache Maven] ***************************************** 
changed: [localhost]

TASK: [maven | Untar Maven to /opt] ******************************************* 
changed: [localhost]

TASK: [maven | Create symbolic link maven to the /opt/apache-{{ maven_version }}] *** 
changed: [localhost]

TASK: [maven | lineinfile dest=/etc/profile regexp='^#?\s*export MAVEN_HOME=(.*)$' line='export MAVEN_HOME=/opt/maven' state=present] *** 
changed: [localhost]

TASK: [maven | lineinfile dest=/etc/profile regexp='^#?\s*export PATH=(.*)MAVEN_HOME(.*)$' line="export PATH=$PATH:$MAVEN_HOME/bin" state=present] *** 
changed: [localhost]

TASK: [maven | Reload profile] ************************************************ 
changed: [localhost]

TASK: [maven | Create local repository] *************************************** 
changed: [localhost]

TASK: [maven | Creates setting.xml file] ************************************** 
changed: [localhost]

PLAY RECAP ******************************************************************** 
localhost                  : ok=14   changed=13   unreachable=0    failed=0   

 ---> fb211f3fbbfd
Removing intermediate container 4eda53bf7e00
Step 15 : WORKDIR $PLAYBOOKS/sonar-playbook
 ---> Running in b9ba0623b48a
 ---> d48ad5abbf43
Removing intermediate container b9ba0623b48a
Step 16 : RUN ansible-playbook sonar.yml -c local
 ---> Running in 2d2716354c5d

您可以執行以下操作:

從掛起的行注釋掉dockerfile直到結尾。

構建映像,以交互方式啟動新容器,然后直接從外殼運行同一行。 這基本上等於讓它在docker構建期間運行,只有您才有機會也檢查一下該機器上發生的一切(可以拖尾日志,可以在容器掛起時將docker exec放入容器中並找出哪個進程卡住了等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM