2016-09-24 11 views
2

我目前必須執行以下9個步驟才能在Ubuntu 16.04上啓動使用Docker的開發堆棧,然後才能開始編寫代碼:如何自動化多服務Web應用程序的Docker開發環境啓動(在Linux上)

  • 打開終端和cd到服務#1的源代碼目錄
  • 搬運工-構成服務#1(的Python/Django中,Redis的,和Postgres容器)
  • 搬運工EXEC服務1的bash;啓動Django的開發服務器進行調試
  • 重複服務#2,使用終端選項卡來爲您整理
  • 打開終端,cd到前端角的應用程序源代碼目錄
  • 運行的WebPack開發服務器與NPM
  • 開放的一個或多個終端,並進入到相應的源代碼目錄編輯

我試着寫一個shell腳本與gnome-terminal --tab -e "bash -c docker-compose up"等推出了一切,不過這樣會尷尬,並試圖再外殼到時會失敗容器和運行的東西,例如gnome-terminal --tab -e "bash -c \"docker-compose exec service1 bash -c rundev.sh \""。我也嘗試使用xdotool,但由於某些原因,它無法識別docker shell終端標籤。

運行帶有兩個後端服務的SPA,做每三個代碼庫的地方發展似乎並不像一個奇怪的用例爲泊塢窗應用開發給我。

沒有人有工具有任何建議或另一種開發環境的設置,簡化的東西呢?

回答

1

你可以用bash腳本做到這一點,但正確的方法是將泊塢窗 - 撰寫。您需要使用各自的命令創建2個服務才能運行。這是軌道應用的example。您的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 
+0

因此,只有使用docker-compose啓動單個服務並通過docker撰寫運行dev服務器才能禁止訪問交互式調試。這就是爲什麼我用docker compose啓動容器,然後將shell放入它們以啓動一個dev服務器,這樣我就可以在容器中訪問我的調試器。 –

相關問題