You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Docker Compose的alembic容器执行cd src后持续运行并支持终端操作?

解决Docker容器执行cd src后立即停止的问题

问题原因

容器的生命周期和主进程绑定,主进程结束容器就会停止。你当前用command: bash -c "cd src"时,cd是bash的内置命令,执行完这个命令后bash进程直接退出,容器自然跟着停了。

解决方案

下面提供两种实用方法,既实现启动时自动进入src目录,又能让容器持续运行:

方法1:修改command让bash持续运行并停在src目录

在docker-compose.yaml的alembic服务配置中,把command改成:

command: bash -c "cd src && exec bash"
  • 原理:exec bash会替换当前的bash进程,让bash成为容器的主进程保持运行;同时cd src已经切换了工作目录,后续进入终端时默认就在src下。

方法2:在Dockerfile中设置默认工作目录(更推荐)

  1. 在你的Dockerfile中添加一行,指定容器启动后的默认工作目录:
WORKDIR /src
  1. 然后在docker-compose.yaml的alembic服务中,把command改成:
command: bash
  • 原理:WORKDIR会让容器启动时自动进入指定目录,bash作为主进程持续运行,容器不会停止,后续进入终端也直接在src目录下。

验证操作

容器启动后,用以下命令进入终端:

docker exec -it <你的alembic容器名或ID> bash

此时你会发现已经处于src目录下,可直接执行后续操作。

内容的提问来源于stack exchange,提问作者Альберт Александров

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:04:56