调试staging docker使用pycharm组合服务器

Ole*_*sov 11 docker wercker docker-compose

我有以下docker-compose.yml文件:

version: '2'
services:
    postgis:
        image: mdillon/postgis
        environment:
           POSTGRES_USER: ${POSTGIS_ENV_POSTGRES_USER}
           POSTGRES_PASSWORD: ${POSTGIS_ENV_POSTGRES_PASSWORD}
           POSTGRES_DB: ${POSTGIS_ENV_POSTGRES_DB}
        volumes:
            - /nexchange/database:/var/lib/postgresql/data
        restart: always
    app:
        image: onitsoft/nexchange:${DOCKER_IMAGE_TAG}
        volumes:
            - /nexchange/mediafiles:/usr/share/nginx/html/media
            - /nexchange/staticfiles:/usr/share/nginx/html/static
        links:
            - postgis
        restart: always
    web:
        image: onitsoft/nginx
        volumes:
            - /nexchange/etc/letsencrypt:/etc/letsencrypt
            - /nexchange/etc/nginx/ssl:/etc/nginx/ssl
            - /nexchange/etc/nginx/nginx.conf:/etc/nginx/nginx.conf
            - /nexchange/mediafiles:/usr/share/nginx/html/media
            - /nexchange/staticfiles:/usr/share/nginx/html/static
        ports:
            - "80:80"
            - "443:443"            
        links:
            - app
        restart: always
Run Code Online (Sandbox Code Playgroud)

出于某种原因,在本地容器上工作的某些功能在暂存时不起作用.我想remote interpreter在pycharm中配置一个暂存,但似乎目前不支持此设置.

我正在使用wercker+ docker compose,我的IDE是pycharm.

编辑:问题是:如何设置Pycharm调试器在运行docker compose的远程主机上运行

Ole*_*sov 5

该解决方案无论多么安全,都可以通过远程目标上的docker API打开公共流量iptables(如果您拥有静态IP,则可能只从特定IP流量).

$ ssh $USER@staging.nexchnage.ru
oleg@nexchange-staging:~# sudo iptables -A INPUT -p tcp --dport 2376 -j ACCEPT
oleg@nexchange-staging:~# sudo /etc/init.d/iptables restart
Run Code Online (Sandbox Code Playgroud)

然后只需使用JetBrain PyCharm/PhpStrom的docker compose功能或您最喜欢的选择:

在此输入图像描述

干杯