J'ai une image que je voudrais utiliser pour "conteneuriser" notre connexion d'application PHP à une base de données MSSQL. Je commence par le Dockerfile:Conteneur Docker se connectant à une base de données MSSQL
FROM nsidhaye/msphpsql
ENV ENVIRONMENT development
ENV APACHE_DOCUMENT_ROOT /var/www
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
COPY MyAgsourceAPI /var/www/
COPY MyAgsourceAPI/as_sys2 /var/as_sys2
J'ai donc les pilotes PHP appropriés en place et le code a été copié. Maintenant, je voudrais obtenir quelques conseils d'utilisateurs. Est-ce que je "ajoute un réseau" en tant que --network? Je dois admettre que ma compréhension d'un «conteneur fermé» et d'un «conteneur ponté» est limitée. Donc, les commandes comme:
docker run --detach --net bridge -p 80:80 rkevinburton/myagsourceapi
ne semblent pas fonctionner. Comment me connecter à un serveur MSSQL à 192.168.3.55 à partir d'un conteneur?
Votre Dockerfile ne semble pas avoir un CMD ou un ENTRYPOINT il sort immédiatement, qui est "normal", voir https://stackoverflow.com/questions/21553353/quoi-est-la-différence-entre-cmd-et-entrypoint-dans-un-dockerfile – user2915097
Microsoft a un conteneur MSSQL Docker; de sorte que vous pouvez lancer un conteneur lié. De plus, 'docker run --add-host: nom: ip' vous permet d'ajouter une entrée au fichier hosts. (https://docs.docker.com/engine/reference/run/#managing-etchosts) J'espère que cela aide un peu! – theGleep
Si vous regardez l'image que cette image personnalisée est basée sur la dernière ligne dans le Dockerfile est 'ENTRYPOINT [" apache2ctl "," -DFOREGROUND "]' –