Dockerfile:在构建过程中添加和删除文件:RUN rm -r问题

时间:2020-10-10 19:38:38

标签: dockerfile

在我的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: {}

1 个答案:

答案 0 :(得分:0)

您需要在-f命令中添加rm参数,这意味着:“忽略不存在的文件和参数,从不提示”

例如:

RUN rm -rf /var/www/html/wp-content/themes/twentytwenty