Docker-编写和 pdb
Docker-compose and pdb
我知道我不是第一个问这个问题的人,但没有明确的答案:
如何在 Python 开发中使用带有 docker-composer 的 pdb?
当你向 Google 叔叔询问 django docker
时,你会得到很棒的 docker-作曲家示例和教程,而且我有一个工作环境 - 我可以 运行 docker-compose up
并且我有一个整洁的开发环境 但 PDB 不工作 (这很可悲)。
我可以使用 运行ning docker-compose run my-awesome-app python app.py 0.0.0.0:8000
解决,但随后我可以通过 http://127.0.0.1:8000 从主机访问我的应用程序(我可以使用 docker-compose up
)并且看起来每次我使用 run
时,新容器都会被制作成:dir_app_13
和 dir_db_4
,这是我根本不想要的。
请好心人助我一臂之力
PS
我在该示例中使用 pdb++,并使用来自 this django example. Also I experimented but nothing seems to help me. And I'm using docker-composer 1.3.0rc3 的基本 docker-compose.yml,因为它具有 Dockerfile 指向支持。
尝试 运行 使用 --service-ports 选项的 Web 容器:docker-compose run --service-ports web
使用以下步骤将 pdb 附加到任何 python 脚本。
第 1 步。在您的 yml 文件中添加以下内容
stdin_open: true
tty: true
这将启用交互模式并附加标准输入。这等同于 -it 模式。
第 2 步
docker attach <generated_containerid>
您现在将获得 pdb shell
根据我的经验,docker-compose up
命令不提供交互式 shell,但它启动打印 STDOUT 为默认只读 shell。
或者如果您指定并映射了日志目录,docker-compose up
命令将不会在附加的 shell 上打印任何内容,但它会将输出发送到您映射的日志。所以一旦它是 运行.
你必须单独附加容器
当您执行 docker-compose up
时,通过 -d
使其处于分离模式并通过
连接到容器
docker exec -it your_container_name bash
我知道我不是第一个问这个问题的人,但没有明确的答案:
如何在 Python 开发中使用带有 docker-composer 的 pdb?
当你向 Google 叔叔询问 django docker
时,你会得到很棒的 docker-作曲家示例和教程,而且我有一个工作环境 - 我可以 运行 docker-compose up
并且我有一个整洁的开发环境 但 PDB 不工作 (这很可悲)。
我可以使用 运行ning docker-compose run my-awesome-app python app.py 0.0.0.0:8000
解决,但随后我可以通过 http://127.0.0.1:8000 从主机访问我的应用程序(我可以使用 docker-compose up
)并且看起来每次我使用 run
时,新容器都会被制作成:dir_app_13
和 dir_db_4
,这是我根本不想要的。
请好心人助我一臂之力
PS
我在该示例中使用 pdb++,并使用来自 this django example. Also I experimented but nothing seems to help me. And I'm using docker-composer 1.3.0rc3 的基本 docker-compose.yml,因为它具有 Dockerfile 指向支持。
尝试 运行 使用 --service-ports 选项的 Web 容器:docker-compose run --service-ports web
使用以下步骤将 pdb 附加到任何 python 脚本。
第 1 步。在您的 yml 文件中添加以下内容
stdin_open: true
tty: true
这将启用交互模式并附加标准输入。这等同于 -it 模式。
第 2 步
docker attach <generated_containerid>
您现在将获得 pdb shell
根据我的经验,docker-compose up
命令不提供交互式 shell,但它启动打印 STDOUT 为默认只读 shell。
或者如果您指定并映射了日志目录,docker-compose up
命令将不会在附加的 shell 上打印任何内容,但它会将输出发送到您映射的日志。所以一旦它是 运行.
当您执行 docker-compose up
时,通过 -d
使其处于分离模式并通过
docker exec -it your_container_name bash