Gulp 在Docker内部版本中创建的文件不存在于从映像创建的容器中

wxclj1h5  于 2022-12-08  发布在  Gulp
关注(0)|答案(1)|浏览(136)

我有以下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>
gywdnpxw

gywdnpxw1#

问题解决了!
原来基本的wordpress图像暴露了一个卷/var/www/html,然后它在www.example.com脚本中复制了wordpress安装entrypoint.sh。
最后,我将应用程序移到/theme-dir,并在该文件夹中运行构建,并更新entrypoint.sh脚本,将wordpress主题目录中的符号链接添加到我的文件夹中。

相关问题