---
# System prepended metadata

title: Manager & Apitesttool 容器化相關文件

---

# Manager & Apitesttool 容器化相關文件

## Manager 部分
1. `docker exec -it manager sh` 可以進到檢測平台後台的那台容器裡
2. code 在 `/volume/data/manager/`

## Apitesttool 部分
1. `docker exec -it apitsettool sh` 可以進到apitesttool的那台容器裡，
2. code 在 `/volume/data/apitesttool/`
3. 如有需要，manager容器的code在 `/volume/manager/`

## Docker部分
參考 [官方 Docker 文件](https://docs.docker.com/get-started/)、[官方 docker-compose 文件](https://docs.docker.com/compose/)、[中文教學1](https://docs.microsoft.com/zh-tw/visualstudio/docker/tutorials/use-docker-compose)、[中文教學2](https://ithelp.ithome.com.tw/articles/10243618)

1. git 是 `AutoProfiler / AutoProfiler`，這一包git 基本上等於整個自動化檢測平台的所有服務和容器
2. docker-compose.yml 裡面包含每個服務的port和volumn掛載的對應
3. 每個容器都是以 git submodule 的方式維護，每個容器的 git 如下圖
![](https://i.imgur.com/OB5KYkg.png)
4. 基本上 `AutoProfiler` 拉下來後直接用 `./init.sh` 就可完成所有檢查和啟動，要先確定本機的3306、8080、50000、9898、8787、15000 port 都沒被占用，不然就要調整docker-compose.yml
5. 每個容器的dockerfile 都在他們自己的git裡，理論上應該不太會去改
6. 執行指令的話 `docker exec -it [oo] [xx]`，`oo`是容器名稱，`xx`是要執行的指令，例如要在`apitesttool`跑`pm2 logs` 就可以下 `docker exec -it apitesttool pm2 logs`
7. `docker ps` 可以看目前容器的啟動狀態
8. `docker logs` 可以看容器的logs，後面加上容器名稱可以看指定容器的，如 `docker logs manager`



### apitesttool的 Dockerfile
1. git 是 `Dockerfile_Apitesttool`
2. 裡面有一個 `dockerfiler/Dockerfile`，可以定義容器初始化的時候要做的事，他的最後一行會把參數傳到`dockerfiler/entrypoint.sh` 去執行，看有沒有要額外做什麼可以參考一下原本的內容，我現在只有在初始化時進行 git pull 把 code 拉下來然後啟動
3. 啟動服務的部分我先直接下 pm2 的指令去起，沒有用 start.sh，但是內容幾乎一樣，只是多了 --no-daemon 參數，這樣才能讓容器永久啟動，若要用 start.sh 啟動的話需要調整 start.sh 吃的參數，可以參考 manager 那包 code 的 start.sh，務必要讓 pm2 做啟動時有帶入 `--no-daemon`，又或是 start.sh 啟動後要用別的指令讓容器不會停止運行