通过 docker-compose 更新配置文件
Updating a config file through docker-compose
我试图让 xdebug 在 docker-compose 设置中的 php 容器中工作。我发现了一些示例,这些示例显示了需要添加到容器中的额外配置行:
在 Reddit 上,我尝试将这些行添加到我的 Web 容器的 Dockerfile 中:
# Configure xdebug
RUN echo "xdebug.remote_enable=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.idekey=PHPSTORM" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_host=10.10.1.2" >> /etc/php5/fpm/conf.d/20-xdebug.ini
但据我所知,我并没有直接使用 docker 文件。
my docker-compose.yml:
web:
image: tutorial/nginx
ports:
- "8080:80"
volumes:
- ./src:/var/www
- ./src/vhost.conf:/etc/nginx/sites-enabled/vhost.conf
links:
- php
php:
image: nmcteam/php56
volumes:
- ./src/php-fpm.conf:/etc/php5/fpm/php-fpm.conf
- ./src:/var/www
run:
# Configure xdebug
RUN echo "xdebug.remote_enable=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.idekey=PHPSTORM" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_host=10.10.1.2" >> /etc/php5/fpm/conf.d/20-xdebug.ini
links:
- db
db:
image: sameersbn/mysql
volumes:
- /var/lib/mysql
environment:
- DB_NAME=demoDb
- DB_USER=demoUser
- DB_PASS=demoPass
显然 运行: 部分不起作用。我遗漏了一些东西,但到目前为止我还无法理解如何使用 compose 解决问题。
run
不是 docker-compose
中的命令
您可以指定 image
或 build
以及 Dockerfile
的替代路径
因此您可以在 Dockerfile
中使用 RUN
。 Reference
我的建议是,如果您需要 运行 您指定的命令,您可以为您的 'php' Dockerfile
:
执行类似的操作
FROM nmcteam/php56
RUN echo "xdebug.remote_enable=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.idekey=PHPSTORM" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_host=10.10.1.2" >> /etc/php5/fpm/conf.d/20-xdebug.ini
构建图像:
docker build -t myuser/php56 <path to Dockerfle>
然后在 docker-compose.yml
文件的 'php' 部分:
php:
image: myuser/php56
volumes:
- ./src/php-fpm.conf:/etc/php5/fpm/php-fpm.conf
- ./src:/var/www
links:
- db
您可以选择将图像推送到您的 dockerhub 帐户:
docker push myuser/php56
我试图让 xdebug 在 docker-compose 设置中的 php 容器中工作。我发现了一些示例,这些示例显示了需要添加到容器中的额外配置行:
在 Reddit 上,我尝试将这些行添加到我的 Web 容器的 Dockerfile 中:
# Configure xdebug
RUN echo "xdebug.remote_enable=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.idekey=PHPSTORM" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_host=10.10.1.2" >> /etc/php5/fpm/conf.d/20-xdebug.ini
但据我所知,我并没有直接使用 docker 文件。
my docker-compose.yml:
web:
image: tutorial/nginx
ports:
- "8080:80"
volumes:
- ./src:/var/www
- ./src/vhost.conf:/etc/nginx/sites-enabled/vhost.conf
links:
- php
php:
image: nmcteam/php56
volumes:
- ./src/php-fpm.conf:/etc/php5/fpm/php-fpm.conf
- ./src:/var/www
run:
# Configure xdebug
RUN echo "xdebug.remote_enable=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.idekey=PHPSTORM" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_host=10.10.1.2" >> /etc/php5/fpm/conf.d/20-xdebug.ini
links:
- db
db:
image: sameersbn/mysql
volumes:
- /var/lib/mysql
environment:
- DB_NAME=demoDb
- DB_USER=demoUser
- DB_PASS=demoPass
显然 运行: 部分不起作用。我遗漏了一些东西,但到目前为止我还无法理解如何使用 compose 解决问题。
run
不是 docker-compose
您可以指定 image
或 build
以及 Dockerfile
因此您可以在 Dockerfile
中使用 RUN
。 Reference
我的建议是,如果您需要 运行 您指定的命令,您可以为您的 'php' Dockerfile
:
FROM nmcteam/php56
RUN echo "xdebug.remote_enable=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.idekey=PHPSTORM" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /etc/php5/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_host=10.10.1.2" >> /etc/php5/fpm/conf.d/20-xdebug.ini
构建图像:
docker build -t myuser/php56 <path to Dockerfle>
然后在 docker-compose.yml
文件的 'php' 部分:
php:
image: myuser/php56
volumes:
- ./src/php-fpm.conf:/etc/php5/fpm/php-fpm.conf
- ./src:/var/www
links:
- db
您可以选择将图像推送到您的 dockerhub 帐户:
docker push myuser/php56