我的Dockerfile包含一些
我认为这个过程应该在
Dockerfile-php-apache
在执行
有人知道为什么在Dockerfile中使用
这是相应的构建日志。
cp
Linux命令。因为项目中的某些文件被声明为示例,例如xxx.php.sample
,应该替换为xxx.php
。我认为这个过程应该在
Dockerfile
上执行。所以我写成了这样。Dockerfile-php-apache
FROM php:5.5-apache
RUN apt-get update && \
docker-php-ext-install pdo_mysql mysqli mbstring
RUN a2enmod rewrite
RUN a2enmod substitute
ADD . /var/www
WORKDIR /var/www
RUN cp config.php.sample config.php
RUN cp shared_config.php.sample shared_config.php
RUN cp vendor/propel/propel1/build.properties.sample vendor/propel/propel1/build.properties
RUN sed -i -E "s/host=(.*);/host=mysql-db;/" ./vendor/propel/propel1/build.properties
COPY docker-php-apache/php.ini /usr/local/etc/php/
docker-compose.yml
version: '2'
services:
mysql-db:
build:
context: .
dockerfile: Dockerfile-mysql-server
ports:
- "3306:3306"
php-apache:
build:
context: .
dockerfile: Dockerfile-php-apache
volumes:
- .:/var/www
ports:
- "80:80"
depends_on:
- mysql-db
在执行
docker-compose build
和docker-compose up
(没有出现错误)后,这里是cp
结果。
我认为路径可能有问题,所以我复制了上面的命令并直接执行它(我可以通过RUN cp config.php.sample config.php -> 未找到config.php
RUN cp shared_config.php.sample shared_config.php -> 未找到shared_config.php
RUN cp vendor/propel/propel1/build.properties.sample vendor/propel/propel1/build.properties -> 未找到build.properties
docker exec -it xxx_php-apache_1 bash
登录容器)。cp
命令成功运行,我可以在容器和本地源中找到复制的文件。有人知道为什么在Dockerfile中使用
cp
命令无法正常工作吗?
这是相应的构建日志。
Step 5 : COPY config.php.sample /var/www/config.php
---> afa7e6139049
Removing intermediate container 38b9968ac061
Step 6 : COPY shared_config.php.sample /var/www/shared_config.php
---> 78ea51045d4e
Removing intermediate container fe0b382914bd
Step 7 : COPY vendor/propel/propel1/build.properties.sample /var/www/vendor/propel/propel1/build.properties
---> 34c186a193c0
Removing intermediate container c55bb9565035
Step 8 : COPY docker-php-apache/php.ini /usr/local/etc/php/
---> 4e3e92aa0f97
Removing intermediate container f2c424eb6c38
Successfully built 4e3e92aa0f97
以防万一,我在容器上执行了find
命令。
root@d98556ed051a:/var/www# find / -iname '*shared_config.php*'
/var/www/shared_config.php.sample
另外,我已经用另一台笔记本电脑进行了测试,但结果是相同的。 以下是测试过的电脑:
- Mac mini (Mid 2011) OS X Yosemite
- Mac book pro (Late 2011) OS X Sierra
每台电脑都在使用 Docker for Mac,版本号为 1.12.1 (build: 12133)。
/var/www
吗?或者您想尝试创建它? - Rao/var/www/html
而不是/var/www
中呈现?请澄清一下。 - Rao