我有以下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
文件夹中,当我查看构建日志时,我可以清楚地看到这些文件正在被创建(这就是为什么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
...等等。
然而,当我从这个映像创建容器时,/var/www/html/wp-content/themes/ca-ticket.com/dist
根本不存在!
我怀疑我一定是做了什么愚蠢事情,导致Docker忽略了一个层,但我不确定这个过程有什么问题。
**编辑:**生成命令为:
docker build --force-rm=true --tag="<tag here>" /path/to/context
我还尝试了--no-cache
选项,结果没有变化。
我正在运行图像:
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>
1条答案
按热度按时间gywdnpxw1#
问题解决了!
原来基本的wordpress图像暴露了一个卷/var/www/html,然后它在www.example.com脚本中复制了wordpress安装entrypoint.sh。
最后,我将应用程序移到/theme-dir,并在该文件夹中运行构建,并更新entrypoint.sh脚本,将wordpress主题目录中的符号链接添加到我的文件夹中。