如何快速切换docker个开发环境?
How to quickly switch between docker environments for development?
我有多个项目需要定期切换。这些项目是通过 docker-compose
设置的,但有些项目需要外部容器才能使用。
所以为了在项目中运行 docker-compose up -d
,我必须先切换到不同的目录并在那里启动一些基本服务容器(mysql的共享实例,redis等)。
我不想 运行 所有容器并行,对于某些容器来说这是不可能的,因为它们在同一个端口上侦听。
我还觉得恼人的是,某些容器需要在其中 运行 脚本才能在开发中正常运行,我发现自己重复执行相同的命令只是为了切换到项目。
我认为这可以自动化,我只是不确定如何解决这个问题。
如何快速切换 docker 环境?我的目标是只有一条线。
我当前的工作流程现在涉及 desk。
对于每个项目,我都通过以下方式初始化了一张桌子:
desk edit project_a
在那里我 运行 我会手动完成的所有步骤,例如:
ponysay "INIT PROJECT A"
docker stop $(docker ps -a -q) # stopping all the running containers
cd ~/src/docker-compose/basic-services
docker-compose up -d
cd ~/src/project_a
docker-compose up -d
docker exec -it project_a_container_name /var/www/project_a/docker/scripts/dev-init.sh
我通过以下方式在环境之间切换:
desk . project_a
desk . project_b
现在切换项目变得非常容易。
我有多个项目需要定期切换。这些项目是通过 docker-compose
设置的,但有些项目需要外部容器才能使用。
所以为了在项目中运行 docker-compose up -d
,我必须先切换到不同的目录并在那里启动一些基本服务容器(mysql的共享实例,redis等)。
我不想 运行 所有容器并行,对于某些容器来说这是不可能的,因为它们在同一个端口上侦听。
我还觉得恼人的是,某些容器需要在其中 运行 脚本才能在开发中正常运行,我发现自己重复执行相同的命令只是为了切换到项目。
我认为这可以自动化,我只是不确定如何解决这个问题。
如何快速切换 docker 环境?我的目标是只有一条线。
我当前的工作流程现在涉及 desk。
对于每个项目,我都通过以下方式初始化了一张桌子:
desk edit project_a
在那里我 运行 我会手动完成的所有步骤,例如:
ponysay "INIT PROJECT A"
docker stop $(docker ps -a -q) # stopping all the running containers
cd ~/src/docker-compose/basic-services
docker-compose up -d
cd ~/src/project_a
docker-compose up -d
docker exec -it project_a_container_name /var/www/project_a/docker/scripts/dev-init.sh
我通过以下方式在环境之间切换:
desk . project_a
desk . project_b
现在切换项目变得非常容易。