2017-09-22 1 views
0

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?

+0

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

+0

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

+0

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 "]' –

Répondre