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

1 réponse


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.