请帮助我!
我不知道该怎么做,我有一个dockerfile文件,如下所示。
FROM php:fpm
RUN touch /var/www/html/foo.php
这是我的撰写文件:
version: '3'
services:
web:
container_name: phpx
build : .
ports:
- "80:80"
volumes:
- ./code:/var/www/html
我在名为code的目录中从未看到foo.php。如何查看foo.php?
它的逻辑是什么?当我删除“ volumes”参数时,它会在容器中创建,但我的代码目录看不到。因为它不同步。
如何在dockerfile文件中编写代码?
答案 0 :(得分:0)
这是您可能要看的东西。 在您的Dockerfile中,您需要为用户提供访问容器中位置的权限。这就是为什么未创建文件的原因。
FROM php:fpm
RUN chown $user --recursive /var/www/html && touch /var/www/html/foo.php
我进行了这些更改,并能够在主机上获取文件。
答案 1 :(得分:0)
要创建目录,您可以使用其中一个
FROM php:fpm
RUN mkdir -p /var/www/html/
RUN touch /var/www/html/foo.php
或
FROM php:fpm
WORKDIR /var/www/html/
RUN touch /var/www/html/foo.php
现在让我们像
一样构建图像docker build -t phpx .
现在像这样运行
docker run -it phpx /bin/sh
现在您可以找到/var/www/html/foo.php
文件的位置。
如果您尝试装入本例中的code
空目录,它将删除mounted
目录中的所有内容。
docker run -it -v full_host_path/code:/var/www/html phpx /bin/sh
可能的解决方案是将foo.php
放在code
内并安装code
目录。
答案 2 :(得分:0)
我已经尝试了您所说的内容,但仍然无法得到结果。仍然在主机的代码文件夹中看不到foo.php文件。我没有发现我在哪里做错了。< / p>