我一直在尝试运行很多小时。我一直在搜索docker文档,github仓库和其他内容,但由于某种原因我无法使其正常运行。
我的dockerfile:
FROM mattrayner/lamp:latest-1804
WORKDIR /app
RUN wget -O /tmp/lwt.zip http://downloads.sourceforge.net/project/lwt/lwt_v_1_6_3.zip && \
yes A | unzip /tmp/lwt.zip &&\
rm /tmp/lwt.zip &&\
mv connect_xampp.inc.php connect.inc.php
EXPOSE 80
CMD ["/run.sh"]
它可以正常构建,没有任何错误,但是当我运行该镜像时,/app
目录中什么也没有出现,并且在浏览器中仅获得基本的Welcome to LAMP View 。虽然,
如果我执行
docker run -p "80:80" -it -v ${PWD}/app:/app mattrayner/lamp:latest-1804 /bin/bash
,cd /app
,请复制并粘贴wget -O /tmp/lwt.zip http://downloads.sourceforge.net/project/lwt/lwt_v_1_6_3.zip && \
yes A | unzip /tmp/lwt.zip &&\
rm /tmp/lwt.zip &&\
mv connect_xampp.inc.php connect.inc.php
仍然不能正常工作但是如果我退出并运行相同的docker run
命令,它仍然可以工作。Docker LAMP指令也指出要完全按照我的意愿去做:
FROM mattrayner/lamp:latest-1804
# Your custom commands
CMD ["/run.sh"]
当我按照这些说明进行操作时,我认为一切正常。这里有什么收获?它可能与中间容器有关,但我无法理解(我不是行业的开发人员或开发人员,只是一个业余爱好者)。
最佳答案
发生这种情况是因为您正在执行以下操作:
/app
目录中下载文件(wget ...)。 如果要在某些目录中安装执行
/app
的东西,请不要装入同一路径。如果您需要在同一路径中放置某些内容,则可以挂载一些具体文件,而不是整个目录,否则它将在创建容器时覆盖您在docker镜像中的内容。
您可以在其他地方安装wget或将其下载到$ {PWD} / app中,然后进行安装。
关于docker - 为什么Dockerfile可以构建但无法正常运行,即使它可以手动运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63476604/