Dro*_*miX 6 wordpress wget unzip docker dockerfile
因此,我可以使用它,但是我想更改立即下载文件并解压缩的方式:
Dockerfile
FROM wordpress:fpm
# Copying themes from local
COPY ./wordpress/ /var/www/html/wp-content/themes/wordpress/
RUN chmod -R 777 /var/www/html/
Run Code Online (Sandbox Code Playgroud)
如何立即从网站下载文件并将其解压缩到适当的文件夹?
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
Run Code Online (Sandbox Code Playgroud)
我试过了:
#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;
Run Code Online (Sandbox Code Playgroud)
小智 6
在Docker 文档中找到了有关远程压缩文件的更多指导
\n\n\n由于图像大小很重要,因此强烈建议不要使用 ADD 从远程 URL 获取包;你应该使用curl或wget代替。\n这样你就可以在提取\xe2\x80\x99ve\n后删除不再需要的文件,并且\xe2\x80\x99\n不必在图像中添加另一个图层。\例如,您应该避免执行以下操作:
\n
ADD https://example.com/big.tar.xz /usr/src/things/\nRUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things\nRUN make -C /usr/src/things all\nRun Code Online (Sandbox Code Playgroud)\n相反,做类似的事情:
\nRUN mkdir -p /usr/src/things \\\n && curl -SL https://example.com/big.tar.xz \\\n | tar -xJC /usr/src/things \\\n && make -C /usr/src/things all\nRun Code Online (Sandbox Code Playgroud)\n
最好使用多阶段 docker 构建。您将需要启用最新版本的 docker 和 buildkit。然后按照这些思路做一些事情
# syntax=docker/dockerfile:1
FROM alpine:latest AS unzipper
RUN apk add unzip wget curl
RUN mkdir /opt/ ; \
curl <some-url> | tar xvzf - -C /opt
FROM wordpress:fpm
COPY --from=unzipper /opt/ /var/www/html/wp-content/themes/wordpress/
Run Code Online (Sandbox Code Playgroud)
更好的是,如果已经使用您想要的内容构建了一个 Docker 映像,您只需要“copy --from”行并为其指定映像名称。
最后,不要担心第一阶段中的任何混乱,因为它在构建完成时被丢弃,因此它的高山性和不使用无缓存的事实是无关紧要的,并且没有任何已安装的软件包最终出现在最终图像中
| 归档时间: |
|
| 查看次数: |
4616 次 |
| 最近记录: |