我有以下Dockerfile
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"]
当我构建它时,第二个RUN命令会生成几个被放入/var/www/html/wp-content/themes/ca-ticket.com/dist
文件夹的文件,当我查看构建日志时,我可以清楚地看到文件正在创建(这就是为什么{ {1}}在那里。
来自日志:
find ./* -type f -printf "%h%f\n" | sort
......等等。
但是,当我从此图片创建容器时,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
根本不存在!
我怀疑我必须做些愚蠢的事情才能让docker忽略一个图层,但我不确定这个过程有什么问题。
修改 构建命令是:
/var/www/html/wp-content/themes/ca-ticket.com/dist
我也尝试使用docker build --force-rm=true --tag="<tag here>" /path/to/context
选项,但结果没有变化。
我正在运行图片:
--no-cache
答案 0 :(得分:0)
问题解决了!
结果显示基础wordpress imags暴露了一个卷/ var / www / html,然后它将wordpress install复制到entrypoint.sh脚本中。
最后,我将应用程序移动到/ theme-dir并在该文件夹中运行构建,并更新了entrypoint.sh脚本,以将wordpress themes目录中的符号链接添加到我的文件夹中。