在我的Dockerfile中,我想添加一个目录并删除一些现有的目录。添加有效,但删除无效。
我的Dockerfile:
FROM wordpress:5.5.1-php7.4-apache
COPY themes/twentyseventeen-b /var/www/html/wp-content/themes/twentyseventeen-b
COPY images/header.jpg /var/www/html/wp-content/uploads/2020/01/a.jpg
#This is line that causes an error:
RUN rm -r /var/www/html/wp-content/themes/twentytwenty
-COPY可以正常工作,并且创建了我的目录,并且上传了文件
-RUN rm -r / var / www / html / wp-content / themes / twentytwenty不起作用:
rm: cannot remove '/var/www/html/wp-content/themes/twentytwenty': No such file or directory
但是我知道该目录存在(如果我注释掉RUN rm ....行,并让构建完成,我可以通过CLI进入容器并查看目录是否存在)。
我尝试在目录名称周围使用单引号-但存在相同的问题。
我还试图在创建后立即删除二十七b目录。它不会产生构建错误,但也不会删除该目录(我仍然在CLI中看到该目录):
FROM wordpress:5.5.1-php7.4-apache
COPY themes/twentyseventeen-b /var/www/html/wp-content/themes/twentyseventeen-b
RUN rm -r /var/www/html/wp-content/themes/twentyseventeen-b
如果使用CLI,则可以在/ var / www / html中管理所有目录。
运行此Dokerfile的docker-compose.yml:
version: '3.3'
services:
db:
build: ./mariadb
volumes:
- db_data:/var/lib/mysql
restart: always
wordpress:
depends_on:
- db
build: ./wordpress
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
答案 0 :(得分:0)
您需要在-f
命令中添加rm
参数,这意味着:“忽略不存在的文件和参数,从不提示”
例如:
RUN rm -rf /var/www/html/wp-content/themes/twentytwenty