Docker build取消了按运行顺序执行的所有操作

Docker build取消了按运行顺序执行的所有操作,docker,jenkins,dockerfile,Docker,Jenkins,Dockerfile,我试图建立Wordpress docker的形象,形象是建立,但有一些事情对我来说没有意义。我使用Jenkins管道和AWS ECR。这是我的docker文件: FROM wordpress:latest ADD --chown=www-data:www-data . /var/www/html/ RUN mkdir -p /var/www/html/wp-content/cache &&\ ls -al /var/www/html/wp-content/cache

我试图建立Wordpress docker的形象,形象是建立,但有一些事情对我来说没有意义。我使用Jenkins管道和AWS ECR。这是我的docker文件:

FROM wordpress:latest

ADD --chown=www-data:www-data . /var/www/html/

RUN mkdir -p /var/www/html/wp-content/cache &&\
    ls -al /var/www/html/wp-content/cache &&\
    chown -R www-data:www-data /var/www/html &&\
    find /var/www/html -type f -exec chmod 644 {} \; &&\
    find /var/www/html/ -type d -exec chmod 755 {} \; &&\
    chmod 600 /var/www/html/wp-config.php &&\
    ls -al /var/www/html/wp-config.php &&\
    chmod 644 /var/www/html/.htaccess
我在RUN as控件中插入了几个LS命令,所以这里是Jenkins管道上的输出

Step 1/3 : FROM wordpress:latest
latest: Pulling from library/wordpress
Digest: sha256:add5816d1c04fdf1509e298af0ec16f8485cd165292bd4245ffdbb9a1db87429
Status: Image is up to date for wordpress:latest
 ---> b9db6e8f3175
Step 2/3 : ADD --chown=www-data:www-data . /var/www/html/
 ---> 43e8cb24bfe0
Step 3/3 : RUN mkdir -p /var/www/html/wp-content/cache &&    ls -al /var/www/html/wp-content/cache &&    chown -R www-data:www-data /var/www/html &&    find /var/www/html -type f -exec chmod 644 {} \; &&    find /var/www/html/ -type d -exec chmod 755 {} \; &&    chmod 600 /var/www/html/wp-config.php &&    ls -al /var/www/html/wp-config.php &&    chmod 644 /var/www/html/.htaccess
 ---> Running in ba6777eceeb2
total 8
drwxr-xr-x 2 root     root     4096 Dec 17 21:54 .
drwxr-xr-x 6 www-data www-data 4096 Dec 17 21:54 ..
-rw------- 1 www-data www-data 4060 Dec 17 21:54 /var/www/html/wp-config.php
Removing intermediate container ba6777eceeb2
 ---> 60434b05bfde
Successfully built 60434b05bfde
Successfully tagged yyyyy.dkr.ecr.eu-central-1.amazonaws.com/xxxx_wordpress:wordpress_develop_94ae0c780964ddbe7e15e978ad6b05814f269690
现在,当我运行container时,您可能会期望像Jenkins output一样创建这些目录并设置文件权限,但事实并非如此

root@03eef2275a79:/var/www/html# ls -l /var/www/html/wp-config.php
-rw-r--r-- 1 www-data www-data 4078 Dec 17 21:55 /var/www/html/wp-config.php
ADD--chown=www-data:www-data
在Dockerfile中提供了帮助,因为RUN不起作用,但显然有些东西并没有收集到我在RUN中做的东西,我不知道为什么


我在repo的根目录中创建了.dockrignore文件,它在docker构建阶段被忽略了,这可能是相关的。图像中我不想要的所有内容都在那里(.git.gitignore…)。非常令人沮丧!不能说我是经验丰富的Docker guru,但显然我做错了什么。

你需要将文件放在
/usr/src/wordpress
而不是
/var/www/html
中。这是因为html目录在父映像中定义为卷,并且运行步骤中的更改应用于临时卷,该临时卷不会在生成的映像层中捕获。未配置卷时,WordPress映像的入口点会从
/usr/src/WordPress
进行复制。

您可以发布docker命令来启动容器吗?我正在将docker-compose.yaml与AWS codedeploy AgentHanks结合使用!就这样