我正在尝试让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

但据我所知,我不是直接使用dockerfile。
    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

显然,run:部分不起作用。我缺少了一些东西,但是到目前为止,我仍然无法弄清楚如何使用compose解决问题。

最佳答案

run不是docker-compose中的命令

您可以指定imagebuild以及Dockerfile的替代路径

因此,您可以在RUN中使用DockerfileReference

我的建议是,如果您需要运行指定的命令,则可以为“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

关于docker - 通过docker-compose更新配置文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33790286/

10-16 18:47