Parar o contêiner do Docker ao sair após executar o comando

4

Eu quero usar o arquivo docker a seguir uma base para aprender fantoche. Foi escrito de uma forma que executa alguns comandos de fantoches e sai imediatamente.

Estou tentando entender onde o contêiner diz para o desligamento, para que eu possa modificá-lo para continuar em execução. O Dockerfile é o seguinte:

FROM ubuntu:16.04
MAINTAINER Gareth Rushgrove "[email protected]"

ENV PUPPET_AGENT_VERSION="1.8.3" UBUNTU_CODENAME="xenial"

LABEL org.label-schema.vendor="Puppet" \
      org.label-schema.url="https://github.com/puppetlabs/puppet-in-docker" \
      org.label-schema.name="Puppet Agent (Ubuntu)" \
      org.label-schema.license="Apache-2.0" \
      org.label-schema.version=$PUPPET_AGENT_VERSION \
      org.label-schema.vcs-url="https://github.com/puppetlabs/puppet-in-docker" \
      org.label-schema.vcs-ref="a2b1fbbc73177ddc3def23d167f9beb9c3ef9f6c" \
      org.label-schema.build-date="2017-02-21T17:25:14Z" \
      org.label-schema.schema-version="1.0" \
      com.puppet.dockerfile="/Dockerfile"

RUN apt-get update && \
    apt-get install --no-install-recommends -y wget ca-certificates lsb-release && \
    wget https://apt.puppetlabs.com/puppetlabs-release-pc1-"$UBUNTU_CODENAME".deb && \
    dpkg -i puppetlabs-release-pc1-"$UBUNTU_CODENAME".deb && \
    rm puppetlabs-release-pc1-"$UBUNTU_CODENAME".deb && \
    apt-get update && \
    apt-get install --no-install-recommends -y puppet-agent="$PUPPET_AGENT_VERSION"-1"$UBUNTU_CODENAME" && \
    apt-get remove --purge -y wget && \
    apt-get autoremove -y && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

ENV PATH=/opt/puppetlabs/server/bin:/opt/puppetlabs/puppet/bin:/opt/puppetlabs/bin:$PATH

ENTRYPOINT ["/opt/puppetlabs/bin/puppet"]
CMD ["agent", "--verbose", "--onetime", "--no-daemonize", "--summarize" ]

COPY Dockerfile /

Como posso modificar isso para que ele não seja desativado imediatamente?

    
por Philip Kirkbride 24.04.2017 / 15:39

1 resposta

2

Descobri que remover "--onetime" das seguintes linhas:

ENTRYPOINT ["/opt/puppetlabs/bin/puppet"]
CMD ["agent", "--verbose", "--onetime", "--no-daemonize", "--summarize" ]

De o que estou lendo , a opção --onetime altera o código de saída retornado, que estava provocando uma saída.

    
por 25.04.2017 / 17:47

Tags