Docker ์ธ์คํด์ค ๊ด๋ฆฌ ๊ฐ์ด๋
Docker ์ธ์คํด์ค๋ GIIP ์์ด์ ํธ๋ฅผ ์๊ฒฉ ์๋ฒ/PC์ ์ปจํ ์ด๋๋ก ๋ฐฐํฌํ๊ณ , GIIP ์น์์ ์์ฑยท์กฐํยทํ๊ธฐํ ์ ์๋ ๊ด๋ฆฌ์ ๊ธฐ๋ฅ์ ๋๋ค. ์ธ์คํด์ค ํ ํฐ์ ๋์ PC์ ์ ๋ฌํด ์ปจํ ์ด๋๋ฅผ ๊ธฐ๋ํ๋ฉด, ๊ทธ PC๊ฐ GIIP ์์ด์ ํธ(1๋ถ๋ง๋ค ํด๋ง)์ slack-bot(์ ํ)์ผ๋ก ๋์ํ๊ธฐ ์์ํฉ๋๋ค.
๐ ๊ฐ์
Docker ์ธ์คํด์ค ๊ด๋ฆฌ ํ์ด์ง์์๋ giip-fde-agent Docker ์ปจํ ์ด๋๋ฅผ ์๊ฒฉ PC/์๋ฒ์ ๋ฐฐํฌํ๊ธฐ ์ํ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํฉ๋๋ค. ์ธ์คํด์ค ์์ฑ ์ GIIP ์๋ฒ๊ฐ AES-256-GCM์ผ๋ก ์๊ฒฉ์ฆ๋ช ์ ์ํธํํด ์ ์ฅํ๊ณ , ํ ํฐ์ 1ํ๋ง ํ์ํฉ๋๋ค.
โ ๏ธ ์ด ํ๋ฉด์ ๊ด๋ฆฌ์ ์ ์ฉ์ ๋๋ค. ์ ๊ทผํ๋ ค๋ฉด ๊ด๋ฆฌ์ ๋ ๋ฒจ **
uLevel >= 70**์ด ํ์ํฉ๋๋ค. ๊ทธ ๋ฏธ๋ง ์ฌ์ฉ์๋ ํ์ผ๋ก ๋ฆฌ๋ค์ด๋ ํธ๋ฉ๋๋ค.
๐ ํ๋ฉด ๊ตฌ์ฑ
1. ์๋จ ํค๋
- ํ์ด์ง ์ ๋ชฉ: "Docker ์ธ์คํด์ค ๊ด๋ฆฌ"
- + Create Docker instance ๋ฒํผ: ์ ์ธ์คํด์ค ์์ฑ ๋ชจ๋ฌ์ ์ฝ๋๋ค.
2. ์ธ์คํด์ค ๋ชฉ๋ก ํ
| ์ปฌ๋ผ | ์ค๋ช |
|---|---|
| Label | ์ธ์คํด์ค ์ด๋ฆ(์ค์ ใใชใใฃใ ๊ฒฝ์ฐ #<diSn>) |
| Created | ์์ฑ ์ผ์ |
| Last fetched | ์ปจํ ์ด๋๊ฐ ํ ํฐ์ผ๋ก ๋ง์ง๋ง์ผ๋ก env๋ฅผ ๋ฐ์๊ฐ ์๊ฐ. ์ค์๊ฐ ์์กด ์ฌ๋ถ๊ฐ ์๋๋ผ "๋ง์ง๋ง ๊ธฐ๋ ์๊ฐ"์ ๊ฐ๊น์ |
| Status | Active(์ด๋ก) ๋๋ Revoked(๋นจ๊ฐ) ๋ฐฐ์ง |
| Actions | Revoke ๋ฒํผ โ ํ ํฐ์ ๋ฌดํจํ(์คํ ์ค์ธ ์ปจํ ์ด๋๋ ๋ฉ์ถ์ง ์์) |
โ ๏ธ Last fetched๊ฐ
-์ธ ๊ฒฝ์ฐ: ์ปจํ ์ด๋๊ฐ ์์ง ํ ๋ฒ๋ ๊ธฐ๋ํ์ง ์์ ๊ฒ์ ๋๋ค. ์ ์ฐจ โ (์๋) ๋๋ โก(Provision now)๋ฅผ ์์ง ์คํํ์ง ์์ ์ํ์ ๋๋ค.
๐ ๏ธ ์ธ์คํด์ค ์์ฑ ๋ฐฉ๋ฒ
- + Create Docker instance ๋ฒํผ์ ๋๋ฆ ๋๋ค.
- ํ์ ํ๋ 3๊ฐ๋ฅผ ์
๋ ฅํฉ๋๋ค.
- GIIP_LOGIN_ID: GIIP ๋ก๊ทธ์ธ ๊ณ์ (์:
user@example.com) - GIIP_SK: GIIP ๋น๋ฐ ํค (๋น๋ฐ๋ฒํธ์ ๋ค๋ฆ)
- GIIP_CSN: CSN ๋ฒํธ (์:
47)
- GIIP_LOGIN_ID: GIIP ๋ก๊ทธ์ธ ๊ณ์ (์:
- ์ ํ ํ๋๋ฅผ ์
๋ ฅํฉ๋๋ค.
- Label: ์ธ์คํด์ค ์ด๋ฆ (์ ํ, ์:
lowy-dp01-docker) - GIIP_PROJECT_NAME: ๊ธฐ๋ณธ
docker - GIIP_WORKDIR: ์์ ๋๋ ํฐ๋ฆฌ (์ ํ)
- GIIP_REST_BRANCH: Git ๋ธ๋์น (์ ํ)
- SLACK_BOT_TOKEN / SLACK_APP_TOKEN / SLACK_CHANNEL_ID: Slack ๋ด ํ์ฑํ (์ ํ โ ๋ ๋ค ํ์)
- Enable hourly-issue-scheduler: ์ฒดํฌ๋ฐ์ค (๊ธฐ๋ณธ on) โๆฏๅฐๆถ
:07์ ์ด์ ์ค์ผ์ค๋ฌ ์คํ
- Label: ์ธ์คํด์ค ์ด๋ฆ (์ ํ, ์:
- Create๋ฅผ ๋๋ฆ ๋๋ค.
ํ ํฐ์ ๋ฐ๋์ ๋ณต์ฌํ์ธ์
์์ฑ ์งํ ๋ฑ 1ํ๋ง ํ ํฐ์ด ํ์๋ฉ๋๋ค.
GIIP_INSTANCE_TOKEN=<ํ ํฐ>
๋ชจ๋ฌ์ ๋ซ์ผ๋ฉด ๋ค์ ๋ณผ ์ ์์ต๋๋ค. ์ปจํ ์ด๋๋ฅผ ๊ธฐ๋ํ๋ ค๋ฉด ์ด ํ ํฐ์ด ํ์ํ๋ฏ๋ก, ๋ฐ๋์ ๋ณต์ฌํ ๋ค ์งํํ์ธ์.
๐ ๏ธ ์์ฑ ํ ์ปจํ ์ด๋ ๊ธฐ๋ โ ์ ์ฐจ โ (์๋, ๋ชจ๋ ํ๊ฒฝ)
ํ ํฐ์ ๋ณต์ฌํ ๋ค, ๋์ PC/์๋ฒ์์ ๋ค์์ ์คํํฉ๋๋ค.
# 1. giip-fde-agent ์ ์ฅ์๋ฅผ ํด๋ก
git clone https://github.com/LowyShin/giip-fde-agent.git
cd giip-fde-agent/docker
# 2. .env ํ์ผ์ ํ ํฐ๋ง ๊ธฐ๋ก
echo 'GIIP_INSTANCE_TOKEN=<๋ณต์ฌํ ํ ํฐ>' > .env
# 3. Docker Compose๋ก ๊ธฐ๋
docker compose up -d --build
.env์ ํ ํฐ ํ ์ค์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค. ๋๋จธ์ง ํ๊ฒฝ๋ณ์๋fetch-instance-env.sh๊ฐdockerInstanceFetchAPI(ํ ํฐ ์์ฒด๊ฐ ์๊ฒฉ์ฆ๋ช )๋ก ์๋ฒ์์ ์๋ ๋ด๋ ค๋ฐ์ต๋๋ค..env์ ์ง์ ํค๋ฅผ ์ ์ด๋๋ฉด ๊ทธ ๊ฐ์ด ์ฐ์ ํฉ๋๋ค(๋ถ๋ถ override ๊ฐ๋ฅ).
๐ ๏ธ ์์ฑ ํ ์ปจํ ์ด๋ ๊ธฐ๋ โ ์ ์ฐจ โก (์๊ฒฉ Provision now)
๋์ PC์ ์ด๋ฏธ GIIP ์์ด์ ํธ๊ฐ ๋๊ณ ์์ด lssn์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
- ํ ํฐ ํ์ ์์ญ์ lssn ์ ๋ ฅ๋์ ๋์ PC์ lssn์ ์ ๋ ฅํฉ๋๋ค.
- [Provision now] ๋ฒํผ์ ๋๋ฆ ๋๋ค.
- CQE ํ์ ์คํฌ๋ฆฝํธ(mssn=6122)๊ฐ ๋ฑ๋ก๋๊ณ , ์ฆ์ ๊ฐ์ ์คํ(
CQERunForce)๋ฉ๋๋ค.
โ ๏ธ ์ด ๋ฒํผ์ GIIP ์์ด์ ํธ๊ฐ ์ค์น๋ PC์์๋ง ๋์ํฉ๋๋ค. ๋์ PC์ ์์ด์ ํธ๊ฐ ์์ผ๋ฉด ์ด ๋ฐฉ๋ฒ์ ์ธ ์ ์์ต๋๋ค.
โ ๏ธ ์คํฌ๋ฆฝํธ ์์ ๊ถ ์ ์ฝ: ๋ถํธ์คํธ๋ฉ ์คํฌ๋ฆฝํธ๋ ํน์ ์์ ์ ๊ณ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ๋ค๋ฅธ ๊ณ์ ์์ ์ด ๋ฒํผ์ ๋๋ฅด๋ฉด ์คํจํ์ง๋ง, ์ธ์คํด์ค ์์ฑ ์์ฒด๋ ์ด๋ฏธ ์๋ฃ๋์๊ณ ํ ํฐ์ ๊ทธ๋๋ก ์ ํจํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ ์ฐจ โ (์๋)์ผ๋ก ์งํํ์ธ์.
โ ๏ธ ์๋ฃ๊น์ง ์ต๋ 1๋ถ: ๋์ PC์ GIIP ์์ด์ ํธ๊ฐ ์ฝ 60์ด๋ง๋ค ํด๋งํ๋ฏ๋ก, ์ต๋ 1๋ถ ์ ๋ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.
๐ ์์ฑ ํ "์ ์" ํ์ธ โ 3๊ฐ์ง ๊ฒฝ๋ก
GIIP ์น ์์๋ ์ปจํ ์ด๋์ ์ ์ํ๋ ํฐ๋ฏธ๋์ด ์์ต๋๋ค. ํ์ธ์ ๋ค์ 3๊ฐ์ง๋ก ํฉ๋๋ค.
1. ์ปจํ ์ด๋ ์ ธ๋ก ์ง์ ์ ์ (๋์ PC์์)
docker exec -it giip-fde-agent bash
์ปจํ
์ด๋ ์ด๋ฆ์ giip-fde-agent๋ก ๊ณ ์ ์
๋๋ค.
2. ๋ก๊ทธ ํ์ธ (๋์ PC์์)
docker compose logs -f # docker/ ๋๋ ํฐ๋ฆฌ์์
docker logs -f giip-fde-agent # ์ด๋์๋
๊ธฐ๋์ด ์ ์์ด๋ฉด ๋ค์ ๋ฉ์์ง๊ฐ ๋ณด์ ๋๋ค:
[entrypoint] cloned ...[fetch-instance-env] env applied from GIIP_INSTANCE_TOKEN[entrypoint] registered giipAgentLinux cron (every 1 min)[entrypoint] ready. tailing logs.
3. GIIP ์น์์ ํ์ธ โ lsvrlist (์๋ฒ ๋ชฉ๋ก)
์ด๊ฒ์ด "GIIP ์น์์ ์ ์ ํ์ธ"ํ๋ ์ ๋ณธ ๋ฐฉ๋ฒ์ ๋๋ค.
์ปจํ ์ด๋ ๊ธฐ๋ ์:
giipAgentLinux๋ฅผ ํด๋ก ํฉ๋๋ค.giipAgent.cnf(sk=๋ฑ๋กํ GIIP_SK,lssn="0")๋ฅผ ์์ฑํฉ๋๋ค.- 1๋ถ๋ง๋ค
giipAgent3.sh๋ฅผ ์คํํฉ๋๋ค. - GIIP๊ฐ lssn์ ์๋ ๋ฐฐ์ ํ๊ณ , ์ดํ ๊ฐ์ lssn์ผ๋ก ํํธ๋นํธ๋ฅผ ๋ณด๋ ๋๋ค.
- ์ดํ ์ด ์ปจํ
์ด๋๊ฐ ๋ค๋ฅธ ์๋ฒ์ ๋๊ฐ์ด
lsvrlist๋ชฉ๋ก์ ๋ํ๋ฉ๋๋ค.
์ ์ ํ์ธ ๊ฒฝ๋ก: /ko/lsvrlist โ ํด๋น lssn ํ ํด๋ฆญ โ lsvrdetail์์ tLSvr.lsChkdt ํํธ๋นํธ๋ก ์์กด ํ์ธ
โ ๏ธ GIIP_SK๊ฐ ์๊ฑฐ๋
GIIP_ENABLE_AGENT=false์ด๋ฉด ์ด ๋ฑ๋ก์ด ์ผ์ด๋์ง ์์ GIIP ์น์์ ์ปจํ ์ด๋ ์ํ๋ฅผ ์ ํ ๋ณผ ์ ์์ต๋๋ค.
4. Slack์ผ๋ก ํ์ธ (Slack ๋ด ์ค์ ์)
SLACK_BOT_TOKEN๊ณผ SLACK_APP_TOKEN์ ๋ ๋ค ์
๋ ฅํ ๊ฒฝ์ฐ์๋ง slack-bot์ด pm2๋ก ๊ธฐ๋๋ฉ๋๋ค. ์ง์ ํ ์ฑ๋์์ ๋ด์ด ์๋ตํ๋ฉด ์ ์์
๋๋ค.
โ ๏ธ ๋ ์ค ํ๋๋ผ๋ ์์ผ๋ฉด ๊ฑด๋๋๋๋ค โ ํ๋๋ง ๋ฃ๊ณ ์๋ฌด๊ฒ๋ ์ ๋จ๋ ๊ฒ์ ์ ์์ ๋๋ค.
๐ก ์ฐธ๊ณ
- Last fetched โ ์ค์๊ฐ ์์กด ์ฌ๋ถ: Last fetched๋ "๋ง์ง๋ง์ผ๋ก env๋ฅผ ๋ฐ์๊ฐ ์๊ฐ"์ ๋๋ค. ์ปจํ ์ด๋๊ฐ ๊บผ์ ธ๋ ์ด ๊ฐ์ ๊ทธ๋๋ก ๋จ์ ์์ต๋๋ค. ์ค์๊ฐ ์ํ๋ lsvrlist์ ํํธ๋นํธ๋ก ํ์ธํฉ๋๋ค.
- Revoke๋ ํ์ ์ญ์ ํ์ง ์์ต๋๋ค: Revoke๋ ํ ํฐ์ ๋ฌดํจํํ ๋ฟ ๋ชฉ๋ก ํ์ ์ง์ฐ์ง ์์ต๋๋ค. ๊ฐ์ฌ ์ด๋ ฅ์ด๋ฏ๋ก
Revoked๋ฐฐ์ง์ ํจ๊ป ๋จ์ต๋๋ค. - Revokeํด๋ ์คํ ์ค์ธ ์ปจํ
์ด๋๋ ๋ฉ์ถ์ง ์์ต๋๋ค. ์ค์ ๋ก ๋ฉ์ถ๋ ค๋ฉด ๋์ PC์์
docker compose down์ ์คํํด์ผ ํฉ๋๋ค. - ์ปจํ
์ด๋ ์ด๋ฆ์ ํญ์
giip-fde-agent:docker-compose.yml์container_name์ผ๋ก ๊ณ ์ ์ ๋๋ค.
๋ฌธ์ ํด๊ฒฐ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| ํ ํฐ์ ๋ชป ์ ์ด๋๋ค | ์ฌ์กฐํ ๋ถ๊ฐ | ๊ธฐ์กด ์ธ์คํด์ค๋ฅผ Revokeํ๊ณ ์๋ก ์์ฑํ์ธ์. |
docker compose up์ ๋๋๋ฐ lsvrlist์ ์ ๋ฌ๋ค | (a) GIIP_ENABLE_AGENT=false ์ฌ๋ถ (b) GIIP_SK ๋น์๋์ง (c) 1๋ถ Polling ์ฃผ๊ธฐ ์ ์ธ์ง (d) ์ธ์ฆ ์ค๋ฅ(401) | docker logs์ /work/giipAgentLinux/log/cron.log์์ 401 ์ค๋ฅ ํ์ธ |
| ๋งค ์ฌ๊ธฐ๋๋ง๋ค ์ lssn์ผ๋ก ๋ฑ๋ก๋๋ค | /work ๋ณผ๋ฅจ์ด ์ ์ค๋จ | docker-compose.yml์ ๋ณผ๋ฅจ์ด giip-fde-agent-data:/work ์ ์ฒด์ธ์ง ํ์ธ |
| [Provision now] ์คํจ | ๋ถํธ์คํธ๋ฉ ์คํฌ๋ฆฝํธ ์์ ์ ๊ณ์ ๋ถ์ผ์น | ์ ์ฐจ โ (์๋ docker compose up)์ผ๋ก ์งํํ์ธ์. |
| Slack ๋ด์ด ์ ๋ฌ๋ค | SLACK_BOT_TOKEN๊ณผ SLACK_APP_TOKEN ๋ ๋ค ํ์ | ํ๋๋ง ์์ผ๋ฉด ๋ ๋ค ๊ฑด๋๋๋๋ค. |
| ์ ์ ์ฆ์ ํ์ผ๋ก ํ๊น | uLevel์ด 70 ๋ฏธ๋ง | ๊ด๋ฆฌ์ ๊ณ์ (๋ ๋ฒจ 70+)์ผ๋ก ๋ก๊ทธ์ธํ์ธ์. |
๋ฒ์ : 1.0
์ต์ข
์์ : 2026-09-22 (giip #2847)
์์ค ํ์ผ: giipv3/public/help/docker-instances.ko.md