所以,我有,它的工作原理,但我想改变的方式立即下载文件并解压:
Dockerfile
FROM wordpress:fpm
# Copying themes from local
COPY ./wordpress/ /var/www/html/wp-content/themes/wordpress/
RUN chmod -R 777 /var/www/html/
如何立即从网站下载文件并将其解压缩到相应的文件夹?
docker-compose.yml
wordpress:
build: .
links:
- db:mysql
nginx:
image: raulr/nginx-wordpress
links:
- wordpress
ports:
- "8080:80"
volumes_from:
- wordpress
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: qwerty
我试过:
#install unzip and wget
RUN \
apt-get update && \
apt-get install unzip wget -y && \
rm -rf /var/lib/apt/lists/*
RUN wget -O /var/www/html/type.zip http://wp-templates.ru/download/2405 \
&& unzip '/var/www/html/type.zip' -d /var/www/html/wp-content/themes/ && rm
/var/www/html/type.zip || true;
3条答案
按热度按时间p1iqtdky1#
最好使用多阶段Docker构建。您需要启用最新版本的docker和buildkit。然后沿着这些路线做些沿着的事情
更好的是,如果有一个Docker镜像已经构建了你想要的东西,你只需要'copy --from'一行,然后给予镜像名称。
最后,不要担心第一阶段的任何混乱,因为当构建完成时,它会被丢弃,所以它的阿尔卑斯山和不使用无缓存的事实是无关紧要的,并且没有一个安装的软件包最终会出现在最终的图像中
atmip9wb2#
在Docker documentation中找到远程压缩文件的更多指导
因为图像大小很重要,所以强烈建议不要使用ADD从远程URL获取软件包;你应该使用curl或wget来代替。这样你就可以删除你不再需要的文件后,他们已经被提取,你不必添加另一个图层在你的图像。例如,你应该避免做这样的事情:
相反,请执行以下操作:
nue99wik3#
Dockerfile有一个“native command”,用于复制和提取
.tar.gz
文件。所以你可以把压缩文件的类型从 .zip 改为 *. tar.gz *(也许将来的版本也会支持zip,我不确定),并使用
ADD
代替COPY
。阅读更多关于
ADD