2016-04-12 4 views
0

ich folgendes Dockerfile habenDateien in Docker erstellt bauen nicht in Behälter aus Bild erstellt

FROM wordpress 

#make sure necessary tools for publishing are installed 
RUN curl -sL https://deb.nodesource.com/setup_4.x | bash - && \ 
    apt-get install -y nodejs git && \ 
    npm install -g npm gulp bower 

ADD . /var/www/html/wp-content/themes/theme-name 

RUN cd /var/www/html/wp-content/themes/theme-name \ 
    && npm install \ 
    && npm run build \ 
    && rm -rf node_modules \ 
    && rm -rf bower_components \ 
    && find ./* -type f -printf "%h%f\n" | sort \ 
    && cd/

VOLUME ["/var/www/html/wp-content/themes/ca-ticket.com"] 

ENTRYPOINT ["/entrypoint.sh"] 
CMD ["apache2-foreground"] 

Wenn ich es bauen, erzeugt die zweite RUN-Befehl mehrere Dateien, die in den /var/www/html/wp-content/themes/ca-ticket.com/dist Ordner abgelegt werden, und wenn ich sieht das Build-Protokoll kann ich deutlich sehen, dass die Dateien werden immer erstellt (das ist, warum die find ./* -type f -printf "%h%f\n" | sort gibt es

Aus dem Protokoll.

build 11-Apr-2016 18:51:01 ./dist/scriptsjquery.js 
build 11-Apr-2016 18:51:01 ./dist/scriptsjquery.js.map 
build 11-Apr-2016 18:51:01 ./dist/scriptsmain.js 
build 11-Apr-2016 18:51:01 ./dist/scriptsmain.js.map 
build 11-Apr-2016 18:51:01 ./dist/stylesmain.css 
build 11-Apr-2016 18:51:01 ./dist/stylesmain.css.map 

... und so weiter.

Wenn ich jedoch einen Container aus diesem Bild erstellen, existiert die /var/www/html/wp-content/themes/ca-ticket.com/dist einfach nicht!

Ich vermute, ich muss etwas Dummes tun, damit Docker einen Layer ignoriert, aber ich bin nicht sicher, was an diesem Prozess falsch ist.

edit: Der Build-Befehl lautet:

docker build --force-rm=true --tag="<tag here>" /path/to/context 

ich auch mit der --no-cache Option ohne Änderung auf das Ergebnis ausprobiert habe.

Ich laufe das Bild mit:

docker run --name <name> -d -p 81:80 -e WORDPRESS_DB_HOST=<dbhost> -e WORDPRESS_DB_USER=<dbuser> -e WORDPRESS_DB_PASSWORD=<pass> -e WORDPRESS_DB_NAME=<dbname> -e WORDPRESS_TABLE_PREFIX=<tblprefix> <imagename> 
+0

Könnten Sie bitte den Befehl build and run eingeben? – Auzias

+0

@Auzias Ich habe die Frage mit den Befehlen build und run aktualisiert. – Matt

Antwort

0

Problem gelöst!

Es stellte sich heraus, die Basis wordpress imags ein Volume/var/www/html ausgesetzt, dass es dann die Wordpress-Installation in das Skript entrepoint.sh kopiert.

Am Ende habe ich die App nach/theme-dir verschoben und den Build in diesem Ordner ausgeführt und das Skript entrepoint.sh aktualisiert, um einen Symlink aus dem Wordpress-Themes-Verzeichnis in meinen Ordner einzufügen.