繁体   English   中英

如何为多服务 Web 应用程序自动启动 docker 开发环境(在 Linux 上)

[英]how to automate docker development environment startup for a multi-service web app (on Linux)

我目前必须执行以下 9 个以上的步骤才能在 Ubuntu 16.04 上使用 Docker 启动我的开发堆栈,然后才能开始编写代码:

  • 打开终端并 cd 进入服务 #1 的源代码目录
  • docker-compose up 服务 #1(Python/Django、Redis 和 Postgres 容器)
  • docker exec service1 bash; 启动 Django 开发服务器进行调试
  • 重复服务 #2,使用终端选项卡使事情井井有条
  • 打开终端,cd 进入前端 Angular 应用源码目录
  • 使用 npm 运行 webpack 开发服务器
  • 打开一个或多个终端并 cd 进入相应的源代码目录进行编辑

我尝试编写一个 shell 脚本来使用gnome-terminal --tab -e "bash -c docker-compose up"等启动所有内容, gnome-terminal --tab -e "bash -c docker-compose up"尴尬,并且在尝试将 shell 装入容器并运行某些东西时会失败,例如gnome-terminal --tab -e "bash -c \\"docker-compose exec service1 bash -c rundev.sh \\"" 我也尝试使用xdotool ,但由于某种原因它无法识别xdotool shell 终端选项卡。

运行具有两个后端服务的 SPA 并在三个代码库中的每一个上进行本地开发对我来说似乎并不是 Docker 应用程序开发的一个奇怪用例。

有没有人对工具或替代开发环境设置有任何建议以简化事情?

您可以使用 bash 脚本来完成,但正确的方法是 docker-compose。 您需要使用各自的命令创建 2x 服务才能运行。 这是 rails 应用程序的示例 您的 docker-compose.yml 应该与此类似。

version: '2'
services:
  db:
    image: postgres
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM