Docker - Dockerfile

Résolu/Fermé
devGnode Messages postés 17 Date d'inscription samedi 13 février 2021 Statut Membre Dernière intervention 5 mars 2021 - Modifié le 25 févr. 2021 à 10:24
devGnode Messages postés 17 Date d'inscription samedi 13 février 2021 Statut Membre Dernière intervention 5 mars 2021 - 26 févr. 2021 à 13:25
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


A voir également:

1 réponse

avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
Modifié le 26 févr. 2021 à 10:11
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
0
devGnode Messages postés 17 Date d'inscription samedi 13 février 2021 Statut Membre Dernière intervention 5 mars 2021 2
Modifié le 26 févr. 2021 à 13:27
Hello,

Merci infiniment, c'est bien ça.

CMD ["squid","-N"]
0