Salut à tous,
J'ai commencé cette après-midi à regarder Docker pour mon propre serveur et je n'arrive pas à faire le lien avec mon volume et j'ai du mal avec la configuration d'apache.
Est-ce que quelqu'un a une idée d'où cela pourrai venir en regardant les codes :
Dockerfile
# Image de base
FROM ubuntu:16.04
# Qui maintient le Dockerfile
MAINTAINER BaBeuloula <babeuloula@gmail.com>
# On refresh les packages
RUN apt-get update
# Installation d'Apache2
RUN apt-get install -y apache2
# Activation de la réécriture d'URL
RUN a2enmod rewrite
# On cré les variables d'environement pour les utiliser plus facilement
ENV APACHE_CONF_FILE /etc/apache2/apache2.conf
# On ajoute localhost comme nom de serveur
RUN echo "ServerName localhost" >> $APACHE_CONF_FILE
# On cache la signature du serveur
RUN echo "ServerSignature Off" >> $APACHE_CONF_FILE
RUN echo "ServerTokens Prod" >> $APACHE_CONF_FILE
# On active HTTP2
#RUN echo "Protocols h2 http/1.1" >> $APACHE_CONF_FILE
# On supprime les configurations par defaut
RUN rm -f /etc/apache2/sites-enabled/*
RUN rm -f /etc/apache2/sites-available/*
# On inclu les fichiers de conf
ADD srv/conf/apache/ /srv/conf/apache/
RUN echo "IncludeOptional /srv/conf/apache/*.conf" >> $APACHE_CONF_FILE
RUN echo "IncludeOptional /srv/conf/apache/sites/*.conf" >> $APACHE_CONF_FILE
# On cré le dossier où seront stockés les sites
RUN mkdir /srv/sites
# On cré le dossier où seront stockés les logs des sites
RUN mkdir /srv/logs
RUN mkdir /srv/logs/error
RUN mkdir /srv/logs/access
# Redirection d'un port local vers l'exterieur
EXPOSE 80
EXPOSE 443
EXPOSE 8443
# Permet de persister un dossier dans l'image
VOLUME ["/srv"]
# On lance Apache
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
babs-server.conf
#<Directory /srv>
# Option Indexes FollowSymLinks
# AllowOverride All
# Require all granted
#</Directory>
Listen 8443
0000-default.conf
<VirtualHost *:8443>
ServerAdmin test@test.fr
DocumentRoot /srv
ErrorLog /srv/logs/error.log
CustumLog /srv/logs/access.log combined
</VirtualHost>
0001-default.conf
<VirtualHost *:80>
ServerAdmin test@test.fr
DocumentRoot /var/www/html
<Directory /var/www/html>
Options -FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /srv/logs/error.log
CustumLog /srv/logs/access.log combined
</VirtualHost>
J'ai exécuté :
sudo docker build -t babs-server/apache-php7 .
L'image se build bien mais dès que je veux la lancer :
sudo docker run --rm -ti -v /srv:/srv -p 80:80 -p 8443:8443 babs-server/apache-php7
J'ai ce message :
apache2: Syntax error on line 225 of /etc/apache2/apache2.conf: Could not open config directory /srv/conf/apache: No such file or directory
Action '-D FOREGROUND' failed.
The Apache error log may have more information.
Je vois pas en quoi mon import du fichier de conf babs-server.conf n'est pas bon. J'ai la même chose que dans ports.conf
Et le dossier /srv n'est pas synchronisé avec mon ordinateur.
Merci par avance de vos réponses car là je bloque totalement
Salut,
Je viens de modifier ma dernière commande pour lancer bash et je viens de voir que le contenu de mon dossier /srv est vide. Alors que j'ai bien fais du ADD dans mon Dockerfile.