J'ai le Dockerfile suivant:
2019.05.08 14:22:59 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp 2019.05.08 14:22:59 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001 2019.05.08 14:22:59 INFO app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/opt/sonarqube/elasticsearch]: /opt/sonarqube/elasticsearch/bin/elasticsearch 2019.05.08 14:22:59 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running 2019.05.08 14:22:59 INFO app[][o.e.p.PluginsService] no modules loaded 2019.05.08 14:22:59 INFO app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin] 2019.05.08 14:23:01 WARN app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 1 2019.05.08 14:23:01 INFO app[][o.s.a.SchedulerImpl] Process [es] is stopped 2019.05.08 14:23:01 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
Quand j'exécute la création d'image:
[ { "Id": "sha256:266ee2202a5d23c7deed92b67c70793d681ff3f46a9b8901586464a9785f0f03", "RepoTags": [ "sonarqube-test:latest" ], "RepoDigests": [], "Parent": "sha256:19fe6021b3c114dc32bb70b276a2aa4c95d05eeba1d98920842290c5682378f4", "Comment": "", "Created": "2019-05-08T14:20:48.968804549Z", "Container": "752779a26450df746105d84c3172e56aef52cf7d7f12f10b594ae6987cc0b147", "ContainerConfig": { "Hostname": "d0b3d88572d1", "Domainname": "", "User": "root", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "ExposedPorts": { "9000/tcp": {} }, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "LANG=C.UTF-8", "JAVA_HOME=/docker-java-home", "JAVA_VERSION=8u212", "JAVA_DEBIAN_VERSION=8u212-b01-1~deb9u1", "SONAR_VERSION=7.7", "SONARQUBE_HOME=/opt/sonarqube", "SONARQUBE_JDBC_USERNAME=sonar", "SONARQUBE_JDBC_PASSWORD=sonar", "SONARQUBE_JDBC_URL=" ], "Cmd": [ "/bin/sh", "-c", "chmod -R 655 /opt/sonarqube/extensions/plugins/ && chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/" ], "ArgsEscaped": true, "Image": "sha256:19fe6021b3c114dc32bb70b276a2aa4c95d05eeba1d98920842290c5682378f4", "Volumes": { "/opt/sonarqube/data": {} }, "WorkingDir": "/opt/sonarqube", "Entrypoint": [ "./bin/run.sh" ], "OnBuild": [], "Labels": {} }, "DockerVersion": "17.05.0-ce", "Author": "", "Config": { "Hostname": "d0b3d88572d1", "Domainname": "", "User": "root", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "ExposedPorts": { "9000/tcp": {} }, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "LANG=C.UTF-8", "JAVA_HOME=/docker-java-home", "JAVA_VERSION=8u212", "JAVA_DEBIAN_VERSION=8u212-b01-1~deb9u1", "SONAR_VERSION=7.7", "SONARQUBE_HOME=/opt/sonarqube", "SONARQUBE_JDBC_USERNAME=sonar", "SONARQUBE_JDBC_PASSWORD=sonar", "SONARQUBE_JDBC_URL=" ], "Cmd": null, "ArgsEscaped": true, "Image": "sha256:19fe6021b3c114dc32bb70b276a2aa4c95d05eeba1d98920842290c5682378f4", "Volumes": { "/opt/sonarqube/data": {} }, "WorkingDir": "/opt/sonarqube", "Entrypoint": [ "./bin/run.sh" ], "OnBuild": [], "Labels": {} }, "Architecture": "amd64", "Os": "linux", "Size": 976584087, "VirtualSize": 976584087, "GraphDriver": { "Data": { "RootDir": "/var/lib/docker/overlay/ad0d706f550d36e9ffd088d7e6ebf3454e8679a3587457cb0686719fbb20313b/root" }, "Name": "overlay" }, "RootFS": { "Type": "layers", "Layers": [ "sha256:fbb641a8b94349e89886f65d79928e4673530e2a2b4d33c2c95e0426713f78e4", "sha256:604829a174eb966a2102e2e68c7669e1fe56721e8d7ea27f9a286aa33be8be20", "sha256:12cb127eee44270330891b1b610ce34e81f53a91a22e3a7f53f0632391d99892", "sha256:b17cc31e431beb2f39988dff23d04f85ba4b446fc0a13f304774852fa3c87d85", "sha256:af5ae48417766c4fa9b5ce9fc30a245c11dcb568c553bcf810c2fc137f62a97a", "sha256:e38df31d449cc619dbcab21468926927fdf4eff01498c8090cfddc0fb21e2a8a", "sha256:f350d0146bb3e9534f9bf10bfcdda4e413719644c78729f67667e16ffbd90325", "sha256:f7d12d4716672cbfdc98d3e431e63f8a5b236ab84ff80057dfadc6d1d0813fef", "sha256:3cc1c13e6e626d0073da455dc51b17a905ea5fc48a26e8d3e4d61a4218c105a9", "sha256:c6e01c4cf63e8d9b7d5f3de0a7a8d007bff05b3281dc559ebee890a9f79220a3", "sha256:e2c38440cb8a6f84bee3e3b2c45504812721cfa68d16fb601f8079873da8db35", "sha256:729909524637bf4631190a3112d993b0df9c1039d533f23452257bbe1eea883c", "sha256:f96562dd3433e564ae287d48ec2edf22f72cfdb60447e5df0d1caab63cfc2c27", "sha256:320c8f5ca5a033919c934ed8e82f8323e6fd0b38278a56a164c2718aa259b89c" ] } } ]
Le conteneur est créé et quitté.
Le docker inspecte:
docker run -d -p 9000:9000 sonarqube-test
Le docker enregistre pour cet ID:
FROM sonarqube ADD https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/ USER root RUN chmod -R 655 /opt/sonarqube/extensions/plugins/ && chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/
La racine user est par défaut et le conteneur s'exécute s'il est avec -it au lieu de -d en passant / bin / bash comme ceci: docker run -it sonarqube-test / bin / bash
.
Le plugin a été correctement copié dans le répertoire et modifié pour l'utilisateur sonarqube.
Est-ce que quelqu'un sait pourquoi le conteneur est quitté?
3 Réponses :
Si vous avez un ENTRYPOINT
, votre / bin / bash
à la fin du docker-run ne fonctionne pas avec -d
(avec -it
fonctionne parfaitement).
Vous devez ajouter exec tail -f / dev / null
ou avec true; dormir 1000; fait
à la fin de votre ENTRYPOINT
exec tail -f / dev / null
est le plus efficace, vous pouvez vérifier ici: Un drapeau dans le docker pour être toujours en place
Voici un dockers avec cette solution: https://github.com/sequenceiq/hadoop-docker/blob/ master / bootstrap.sh
Ceci est une solution officielle fedora , ils créent un CMD ["/ bin / bash "]
à la fin:
https://gora-club.com/ / docker-brew-fedora / blob / 4dbc2ccd3b4d52258981eaf12043025054d53023 / x86_64 // Dockerfile
Vous ne voulez généralement pas d’un conteneur qui ne fait rien. Le questionneur non plus. Si vous regardez leur docker inspect
et que la sortie de la commande leur image de base a un ENTRYPOINT
, cela ne fonctionne tout simplement pas correctement.
Puis-je voir votre ENTRYPOINT
./bin/run.sh
? Peut-être que vous pouvez ajouter à la fin exec tail -f / dev / null
le fichier dont @ PabloLópezGallego parle se trouve dans le référentiel d'origine de l'image ( .com / SonarSource / docker-sonarqube / tree /… ) et n'a rien à voir avec votre problème. Il est évident d'après votre message que vous n'écrasez pas ce script de démarrage.
@Mihai lorsqu'un POINT D'ENTREE est nécessaire, je le change pour créer mon image plus efficacement.
@ PabloLópezGallego et vous n'êtes pas le seul. Mais dans ce cas, vous avez mal lu le message. Cela peut arriver
Vous pouvez déjà définir l'utilisateur lorsque vous AJOUTEZ le fichier:
FROM sonarqube ADD --chown=sonarqube:sonarqube https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
J'ai testé cela et cela fonctionne.
La question est: "Est-ce que quelqu'un sait pourquoi le conteneur est sorti?" vous ne répondez pas à la question, vous ne postez qu'une solution possible du code. Mais dans ce cas, vous avez mal lu le message. Cela peut arriver
Vous avez une faute de frappe dans votre commande: un point après chown "chown". au lieu de "chown". Essayez de copier-coller la commande dans la solution pour éviter les fautes de frappe.
J'ai copié-collé la commande mais j'ai donné l'erreur que j'ai signalée. Je ne sais pas pourquoi pour vous cela a fonctionné et pendant min pas. Peut-être la version de Docker. Mais ce qu'il a résolu, c'est de donner l'autorisation d'exécution qui manquait.
Pour résoudre ce problème, ajoutez l'autorisation d'exécution manquante qui devrait ressembler à ceci:
FROM sonarqube ADD https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/ USER root RUN chmod -R 555 /opt/sonarqube/extensions/plugins/ && chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/