Nehmen wir an, ich bin in meinem Fedora als reynierpm
angemeldet und ich werde ein Docker-Image aus einer Dockerfile erstellen. Dieses Bild enthält eine LAMP-Umgebung. Ich habe eine Apache Virtual Host (VH) Standarddatei, die wie folgt aussieht:Werte für Image-Build für einen Docker-Container festlegen
<VirtualHost *:80>
#ServerName www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www
<Directory /var/www>
AllowOverride All
Require all granted
</Directory>
ErrorLog /dev/stdout
CustomLog /dev/stdout combined
</VirtualHost>
Im Rahmen des integrierten Prozesses diese Datei an die richtige Stelle auf dem Bild kopiert wird.
Kann ich den angemeldeten Benutzernamen vom Host abrufen und dynamisch in diesen VH setzen? Am Ende würde Ich mag die folgenden Ergebnisse erhalten:
<VirtualHost *:80>
ServerName reynierpm.dev
ServerAdmin [email protected]
DocumentRoot /var/www
<Directory /var/www>
AllowOverride All
Require all granted
</Directory>
ErrorLog /dev/stdout
CustomLog /dev/stdout combined
</VirtualHost>
Ich weiß, dass ich den Wert für den aktuellen Benutzer erhalten kann $(whoami)
von bash verwenden, aber wie kann ich es in die VH-Datei auf Docker einfügen/set bauen ?
Dies ist der Inhalt des Dockerfile
:
FROM ubuntu:14.04.5
MAINTAINER Me <[email protected]>
ARG USER_NAME=unknown
VOLUME ["/var/www"]
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install -y software-properties-common && \
apt-get update && \
apt-get install -y \
apache2 \
php5 \
php5-cli \
libapache2-mod-php5 \
php5-gd \
php5-json \
php5-mcrypt \
php5-mysql \
php5-xdebug \
php5-curl \
php5-memcached \
php5-mongo \
zend-framework \
mc \
nano
# Copy default virtual host file.
COPY /config/apache2_vhost/apache_default /etc/apache2/sites-available/000-default.conf
COPY run /usr/local/bin/run
RUN chmod +x /usr/local/bin/run
RUN a2enmod rewrite
EXPOSE 80
EXPOSE 9001
CMD ["/usr/local/bin/run"]
UPDATE: Build fehlschlägt, während versuchen, die args
Nach @Elton Vorschlag verwende ich diese Zeile in der run
Datei hinzugefügt:
sed -i "s/#ServerName www.example.com/$USER_NAME.dev/g" /etc/apache2/sites-available/000-default.conf
Und dann versuchen Sie, das Bild wie zu erstellen:
docker build --build-arg USER_NAME=$(whoami) -t dev-php55 .
aber versagt mit der folgenden Meldung:
Ein oder mehr Build-args [USER_NAME] nicht verbraucht wurde, bauen scheitern.
Was ist los?
Kannst du einen Blick auf meine Bearbeitung werfen? Vielleicht fehlt mir etwas – ReynierPM
Dieser Fehler bedeutet, dass der Name des Arguments in '--build-arg' nicht mit dem Namen in' ARG' übereinstimmt. –
Ok, aber das möchte ich nicht erreichen. Verstehst du das Hauptproblem, das ich habe? Schauen Sie sich das OP an, vielleicht ist es jetzt besser – ReynierPM