es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Script de automatización de Docker JBoss SVN? ¿RPM v. YUM?

Como está, mi Dockerfile funciona tal como se muestra a continuación, pero actualmente tengo que ejecutar las dos líneas comentadas para extraer, compilar e implementar mi aplicación en el servidor. Intenté crear un script de shell para ejecutar esos comandos usando ADD y ENTRYPOINT, pero cuando ejecuto (usando los comandos de Docker a continuación), el script de shell se ejecuta y luego el contenedor se cierra.

¿Qué/cómo modifico (supongo que el comando de ejecución de Docker) para solucionar esto?

¿Hay una forma más fácil de importar bibliotecas que las múltiples URL para RPM? Intenté usar YUM, pero no estaba seguro de cómo configurar mi repositorio para instalar algo.

Dockerfile
“`
FROM registry.access.redhat.com/jboss-eap-7/eap71-openshift
USER root
RUN rpm -i [las URL de las 40 bibliotecas que necesito para SVN]
ADD subversion<em>installer</em>1.14.1.sh /home/svn<em>installer.sh
RUN yes | /home/svn</em>installer.sh
USER jboss
ARG REPO<em>USER
ARG REPO</em>PW
ARG REPO<em>URL
ENV REPO</em>USER=$REPO<em>USER
ENV REPO</em>PW=$REPO<em>PW
ENV REPO</em>URL=$REPO_URL

<h1>RUN svn export –username="$REPO<em>USER" –password="$REPO</em>PW" "$REPO_URL" /usr/svn/myapp</h1>

<h1>RUN /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7<em>6.x86</em>64/bin/jar -cvf $JBOSS_HOME/standalone/deployments/myapp.war /usr/svn/myapp</h1>

“`

Comandos de Docker

docker build . -t myapp:latest
docker run -d -p 8080:8080 -p 9990:9990 --env-file=svnvars.cfg myapp:latest

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para modificar el comando “docker run” y solucionar el problema donde el contenedor se cierra después de ejecutar el script de shell, puedes añadir el comando “tail -f /dev/null” al final del comando de ejecución. Esto mantendrá el contenedor en ejecución en primer plano, evitando que se cierre. El comando “docker run” modificado se vería así:

    docker run -d -p 8080:8080 -p 9990:9990 --env-file=svnvars.cfg myapp:latest tail -f /dev/null
    

    En cuanto a la importación de bibliotecas, es posible utilizar YUM para instalarlas en lugar de descargarlas individualmente. Puedes configurar un repositorio YUM creando un archivo en el directorio “/etc/yum.repos.d/” con la configuración de tu repositorio. Luego puedes utilizar el comando “yum install” para instalar las bibliotecas requeridas.

Comments are closed.