Docker - Dockerfile [Résolu]

Signaler
Messages postés
17
Date d'inscription
samedi 13 février 2021
Statut
Membre
Dernière intervention
5 mars 2021
-
Messages postés
17
Date d'inscription
samedi 13 février 2021
Statut
Membre
Dernière intervention
5 mars 2021
-
Hello à tous,

Depuis quelque temps j'ai un soucis pour comprendre comment laisser mon contener tourner ( loop )lorsque je créé un contener personnalisé


FROM alpine:3.12

ENV SQUID_VERSION=3.5.27 \
SQUID_USER=proxy

RUN apk update \
&& apk add --no-cache bash \
&& apk add --no-cache squid
&& rm -rf /var/cache/apk/*

#COPY iptables.sh /etc/network/if-pre-up.d

#COPY vpod-squi-entrypoint.sh /sbin/vpod-squi-entrypoint.sh
#RUN chmod 755 /sbin/vpod-squi-entrypoint.sh

EXPOSE 3128/tcp

#ENTRYPOINT ["squid"]
CMD["/bin/sh"]



Lorsque je remplace
CMD["/bin/sh"]
par
ENTRYPOINT ["squid"]
et que je lance mon contener :

docker run -tid --name ... --priviliged=true -p ... --volume .... docker-img


le processus du Docker ne reste pas en mode loop j'ai un process EXIT(0), je dois faire cette procédure pour laisser mon contener accessible en mode loop.


docker run -tid --name ... --priviliged=true -p ... --entrypoint /bin/sh --volume .... docker-img
docker exec -ti name sh
# squid
[OK]...
# exit


ainsi mon contener reste accessible et expose bien mon server.

J'avais eu le même soucis avec image Mysql, j'ai fini par abandonner le fait d'ajouter un entrypoint.sh. En ne surchantant pas le entrypoint de image surement que cela devais laisser la main au entrypoint de l'image MYSQL, et laisser le contener en mode persistance.

FROM mysql:latest

ENV MYSQL_DATABASE vsintorchestapi
ENV MYSQL_ROOT_PASSWORD root

COPY vsint-orchest-sql.1.0.sql /docker-entrypoint-initdb.d/

EXPOSE 3306


Cdlt,

Configuration: Windows / Chrome 88.0.4324.182


1 réponse

Messages postés
18558
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 mai 2021
4 289
Bonjour,

La commande
squid
se termine lorsque aucune session interactive n'est trouvée. Afin d'éviter cela, tu peux utiliser l'option « -N » afin que squid reste en premier plan.
https://linux.die.net/man/8/squid

Il n'y a (à priori) aucune raison d'utiliser ENTRYPOINT, tu devrais plutôt utiliser CMD.


Dockerfile
FROM alpine:3.12

ENV SQUID_VERSION=3.5.27 \
SQUID_USER=proxy

RUN apk update \
&& apk add --no-cache bash \
&& apk add --no-cache squid \
&& rm -rf /var/cache/apk/*

EXPOSE 3128/tcp

CMD ["squid","-N"]


Build :
docker build -t squidccm .


Run :
docker run --privileged -ti --name moncontainer -p 3128:3128 squidccm:latest
Messages postés
17
Date d'inscription
samedi 13 février 2021
Statut
Membre
Dernière intervention
5 mars 2021
2
Hello,

Merci infiniment, c'est bien ça.

CMD ["squid","-N"]