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>) |
| LSSN | ์ ๋ฑ๋ก๋ lsvr์ ์ผ๋ จ๋ฒํธ. ์์ฑ ์งํ ํ ํฐ ํ์ ์์ญ๊ณผ ์ด ๋ชฉ๋ก์ ํ์๋ฉ๋๋ค. ํด๋ฆญํ๋ฉด lsvrdetail๋ก ์ด๋ |
| Created | ์์ฑ ์ผ์ |
| Last fetched | ์ปจํ ์ด๋๊ฐ ํ ํฐ์ผ๋ก ๋ง์ง๋ง์ผ๋ก env๋ฅผ ๋ฐ์๊ฐ ์๊ฐ. ์ค์๊ฐ ์์กด ์ฌ๋ถ๊ฐ ์๋๋ผ "๋ง์ง๋ง ๊ธฐ๋ ์๊ฐ"์ ๊ฐ๊น์ |
| Status | Active(์ด๋ก) ๋๋ Revoked(๋นจ๊ฐ) ๋ฐฐ์ง. ์์ ๊ถ ๋ถ์ผ์น๋ก CQE ๋ถํธ์คํธ๋ฉ์ด ์คํ๋์ง ์์ ์ ์๋ ํ์๋ ๋ฐฐ์ง ์์ ๊ฒฝ๊ณ ์์ด์ฝ(โ ๏ธ)์ด ๋ถ์ต๋๋ค โ hover๋ก ์ค๋ช ์ ๋ณด๊ณ ํด๋ฆญํ๋ฉด ํด๋น lssn์ ์คํ ๋ชฉ๋ก(cqelsvrRunList)์ผ๋ก ์ด๋ํฉ๋๋ค(giip 3062) |
| 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์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. (giip 3043) ๋๋กญ๋ค์ด์๋ Docker Desktop์ด ์ค์น๋ผ ์๊ณ ํ ๋ฒ์ด๋ผ๋ ์ฌ์ฉ๋์ ๋ณด๊ณ ํ ์ ์๋ lssn๋ง ํ๋ณด๋ก ๋น๋๋ค โ ๋ฐฉ๊ธ ๋ง๋ ์ธ์คํด์ค ์์ ์(์์ด์ ํธ๊ฐ ์์ง ๋ถ์ ์ ์๋) lssn์ ์์ฒ์ ์ผ๋ก ๋์ค์ง ์์ต๋๋ค.
- ํ ํฐ ํ์ ์์ญ์ ๋๋กญ๋ค์ด์์ ๋ฆฌ์์ค ์ฌ์ ๊ฐ ์๋ ๋์(CPU/Mem/Disk ์ฌ์ฉ๋ฅ ๊ณผ ์คํ ์ค ์ปจํ ์ด๋ ์๊ฐ ํจ๊ป ํ์๋ฉ๋๋ค)์ ์ ํํฉ๋๋ค. ํ๋ณด๊ฐ ํ๋๋ ์์ผ๋ฉด ๋๋กญ๋ค์ด ๋์ ์๋ด ๋ฌธ๊ตฌ๊ฐ ๋จ๋ฉฐ, ์ด ๊ฒฝ์ฐ ์ ์ฐจ โ (์๋)์ ์ด์ฉํ์ธ์.
- [Provision now] ๋ฒํผ์ ๋๋ฆ ๋๋ค.
- CQE ํ์ ์คํฌ๋ฆฝํธ(mssn=6122)๊ฐ ๋ฑ๋ก๋๊ณ , ์ฆ์ ๊ฐ์ ์คํ(
CQERunForce)๋ฉ๋๋ค.
โ ๏ธ ์ด ๋ฒํผ์ GIIP ์์ด์ ํธ๊ฐ ์ค์น๋ PC์์๋ง ๋์ํฉ๋๋ค. ๋์ PC์ ์์ด์ ํธ๊ฐ ์์ผ๋ฉด ์ด ๋ฐฉ๋ฒ์ ์ธ ์ ์์ต๋๋ค.
โน๏ธ ๊ถํ: [Provision now]๋ ์๋ฒ(
DockerInstanceProvision)๊ฐ ๊ฒ์ฌํฉ๋๋ค. ์ธ์คํด์ค๊ฐ ์ํ csn๊ณผ ๋์ ์๋ฒ๊ฐ ์ํ csn์ ๊ตฌ์ฑ์์ด๋ฉด ๋๊ตฌ๋ ์คํํ ์ ์๊ณ , ์คํฌ๋ฆฝํธ ์์ ์์ผ ํ์๋ ์์ต๋๋ค. ์คํจํ๋ฉด ํ๋ฉด์ ์ฌ์ ๊ฐ ํ์๋๋ฉฐ(์๋ ๋ฌธ์ ํด๊ฒฐ ํ), ์ธ์คํด์ค ์์ฑ์ ์ด๋ฏธ ์๋ฃ๋์๊ณ ํ ํฐ์ ๊ทธ๋๋ก ์ ํจํ๋ฏ๋ก ์ ์ฐจ โ (์๋)๋ก ์งํํ ์ ์์ต๋๋ค.โ ๏ธ ์๋ฃ๊น์ง ์ต๋ 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 ์น์์ ์ ์ ํ์ธ"ํ๋ ์ ๋ณธ ๋ฐฉ๋ฒ์ ๋๋ค.
์์ฑ ์ lsvr์ด ์ ๋ฑ๋ก๋ฉ๋๋ค โ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ์๊ฐ lssn์ด ๋ฐ๊ธ๋์ด UI์ ํ์๋๋ฏ๋ก, ์ปจํ
์ด๋ ๊ธฐ๋ ์ ์ lsvr์ด lsvrlist์ ๋ํ๋ฉ๋๋ค (giip 2856).
์ปจํ ์ด๋ ๊ธฐ๋ ์:
giipAgentLinux๋ฅผ ํด๋ก ํฉ๋๋ค.giipAgent.cnf(sk=๋ฑ๋กํ GIIP_SK,lssn=GIIP_LSSN ํ๊ฒฝ๋ณ์๊ฐ)๋ฅผ ์์ฑํฉ๋๋ค.- 1๋ถ๋ง๋ค
giipAgent3.sh๋ฅผ ์คํํฉ๋๋ค (๋จ, lssn์ด 0์ด ์๋๋ฏ๋ก CQEQueueGet์ ์๊ธฐ๋ฑ๋ก ๊ฒฝ๋ก ๋์ ๊ธฐ์กด lsvr์ ์ ์งํฉ๋๋ค). - ์ดํ ์ด ์ปจํ
์ด๋๊ฐ ๋ค๋ฅธ ์๋ฒ์ ๋๊ฐ์ด
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๋ก ๊ธฐ๋๋ฉ๋๋ค. ์ง์ ํ ์ฑ๋์์ ๋ด์ด ์๋ตํ๋ฉด ์ ์์
๋๋ค.
โ ๏ธ ๋ ์ค ํ๋๋ผ๋ ์์ผ๋ฉด ๊ฑด๋๋๋๋ค โ ํ๋๋ง ๋ฃ๊ณ ์๋ฌด๊ฒ๋ ์ ๋จ๋ ๊ฒ์ ์ ์์ ๋๋ค.
๐งฉ ๋์ ์๋ฒ๋ฅผ ์๋ก ๋๋ฆฌ๋ ๋ฐฉ๋ฒ (Docker ์ค์น โ ํ๋ณด ๋ ธ์ถ)
Provision now ๋๋กญ๋ค์ด์ ์๋ฒ(lssn) ๋จ์๋ก ํ๋ณด๋ฅผ ๋ณด์ฌ ์ค๋๋ค. csn ๋จ์๋ก ๊ณ ๋ฅด๋ ๊ฒ์ด ์๋๋ฉฐ, ํ๋ณด๋ ์ธ์คํด์ค๋ฅผ ๋ง๋ csn ์์ ์๋ฒ ์ค์์๋ง ๋์ต๋๋ค. ๋์์ ๋๋ฆฌ๋ ค๋ฉด ์๋ ์์๋ก PC/์๋ฒ๋ฅผ ์ค๋นํฉ๋๋ค.
| ๋จ๊ณ | ํ ์ผ | ํ์ธ ๋ฐฉ๋ฒ |
|---|---|---|
| โ | ๋์ PC/์๋ฒ์ Docker ์ค์น | docker version์ด Client์ Server ๋ฒ์ ์ ๋ชจ๋ ์ถ๋ ฅ |
| โก | GIIP ์์ด์ ํธ ์ค์นยท๋ฑ๋ก(์ธ์คํด์ค csn ์์) | lsvrdetail์์ ํด๋น lssn์ csn๊ณผ ๋ง์ง๋ง ์ฒดํฌ์ธ ํ์ธ |
| โข | docker_usage ๋ณด๊ณ ํ์ธ | kvslist์์ kKey=<lssn>, kFactor=docker_usage ์ต์ ํ์ "dockerInstalled":true |
| โฃ | ํ๋ณด ๋ ธ์ถ ํ์ธ | ์ธ์คํด์ค๋ฅผ Createํ ๋ค ๋๋กญ๋ค์ด์ ํด๋น ์๋ฒ๊ฐ ๋ธ |
| โค | [Provision now] ์คํ | ์ ์ฐจ โก(์๊ฒฉ Provision now) ์ฐธ์กฐ |
OS๋ณ Docker ์ค์น
| OS | ์ค์น ๋์ | ๋ฐฉ๋ฒ |
|---|---|---|
| Windows | Docker Desktop | ๊ณต์ ์ค์น ํ์ด์ง https://docs.docker.com/desktop/setup/install/windows-install/ ์์ ์ค์นํ๊ฑฐ๋ winget install -e --id Docker.DockerDesktop์ ์ฌ์ฉํฉ๋๋ค. WSL 2 ๋๋ Hyper-V(๊ฐ์ํ ํ์ฑํ) ์๊ฑด์ด ์์ต๋๋ค. |
| macOS | Docker Desktop | ๊ณต์ ์ค์น ํ์ด์ง https://docs.docker.com/desktop/setup/install/mac-install/ |
| Linux | Docker Engine | ๊ณต์ ์ค์น ๋ฌธ์ https://docs.docker.com/engine/install/ ์ ๋ฐฐํฌํ๋ณ ์ ์ฐจ๋ฅผ ๋ฐ๋ฆ
๋๋ค. ์ค์น ํ ์ฌ์ฉ์๋ฅผ docker ๊ทธ๋ฃน์ ์ถ๊ฐํ๊ณ (๊ณต์ ๋ฌธ์ "Linux post-installation steps") ์ฌ๋ก๊ทธ์ธํ ๋ค docker version์ด ์๋ฒ ๋ฒ์ ๊น์ง ๋์ค๋์ง ํ์ธํฉ๋๋ค. |
Docker ์ค์น ํ์๋ Docker ๋ฐ๋ชฌ์ด ์คํ ์ค์ด์ด์ผ ํฉ๋๋ค(Docker Desktop์ ์ฑ์ ์ผ ๋ก๋๋ค).
โ ๏ธ ํ์ฌ Linux(Docker Engine)๋ ํ๋ณด ๋ชฉ๋ก์ ๋ํ๋์ง ์์ต๋๋ค. ํ์ธ ๊ฒฐ๊ณผ giipAgentLinux(origin/main)์๋
docker_usage๋ฅผ ์์งยท๋ณด๊ณ ํ๋ ์ฝ๋๊ฐ ์๊ณ , ์ด๋ฅผ ๋ณด๊ณ ํ๋ ์์ด์ ํธ๋ Windows ์์ด์ ํธ(giipAgentWin์CollectDockerMetrics.ps1)๋ฟ์ ๋๋ค. ๋ฐ๋ผ์ Linux ์๋ฒ์ Docker๋ฅผ ์ค์นํด๋ ๋๋กญ๋ค์ด ํ๋ณด๊ฐ ๋์ง ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ **์ ์ฐจ โ (์๋)**์ผ๋ก ๊ธฐ๋ํฉ๋๋ค.
ํ๋ณด ํ์ ์กฐ๊ฑด (Windows ์์ด์ ํธ)
Windows ์์ด์ ํธ๋ ์คํํ ๋๋ง๋ค docker CLI๊ฐ PATH์ ์๋์ง ํ์ธํ๊ณ , docker version --format '{{.Server.Version}}'์ด ์๋ฒ ๋ฒ์ ์ ๋ฐํํ๋ฉด dockerInstalled=true๋ก ๋ณด๊ณ ํฉ๋๋ค. CLI๊ฐ ์๊ฑฐ๋ ๋ฐ๋ชฌ์ด ๊บผ์ ธ ์์ผ๋ฉด false์
๋๋ค.
GIIP ์์ด์ ํธ ์ค์น
์์ด์ ํธ ์ค์น๋ ์ด ๋ฌธ์๊ฐ ์๋๋ผ ์๋ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ฆ ๋๋ค. ์์ด์ ํธ๋ ์ธ์คํด์ค๋ฅผ ๋ง๋ csn์ ์์๋์ด์ผ ํฉ๋๋ค.
- Windows ์์ด์ ํธ ์ค์น ๊ฐ์ด๋
- Linux/WSL ์์ด์ ํธ ์ค์น ๊ฐ์ด๋
- ์์ด์ ํธ CSN ๋ฑ๋ก
๐ค AI ์์ด์ ํธ์ฉ ์ฐ๊ฒฐ ๋งค๋ด์ผ (Provision now ๋์ ์๋ฒ๊ฐ ์ ๋ณด์ผ ๋)
AI ์์ด์ ํธ๊ฐ ์ฌ๋ ๋์ "์ด PC๋ฅผ Docker ์ธ์คํด์ค์ ๋์์ผ๋ก ์ฐ๊ฒฐ"ํ ๋ ๋ฐ๋ฅด๋ ์ ์ฐจ์ ๋๋ค. ๋ชจ๋ ๋จ๊ณ๋ ์ฝ๊ธฐ ์ ์ฉ์ด๋ฉฐ, ๊ฐ์ ์ถ์ธกํ์ง ๋ง๊ณ ์ง์ ์กฐํํฉ๋๋ค.
์๋ด ๋ฌธ๊ตฌ์ ๋ป
"์ด csn์์ Docker Desktop์ ๊ฐ์งํ ์๋ฒ๊ฐ ์์ง ์์ต๋๋ค"๋ ์ค๋ฅ๊ฐ ์๋๋ผ ํ๋ณด ๋ชฉ๋ก์ด ๋น์๋ค๋ ๋ป์ ๋๋ค. ํ๋ณด๊ฐ ๋๋ ค๋ฉด ๋ค์ ์ ์ ๋ชจ๋ ๋ง์กฑํด์ผ ํฉ๋๋ค.
- ์๋ฒ(lssn)๊ฐ ์ธ์คํด์ค๋ฅผ ๋ง๋ csn ์์์ ๋๋ค.
- ๊ทธ ์๋ฒ์ GIIP ์์ด์ ํธ๊ฐ
docker_usage๋ฅผ ๋ณด๊ณ ํ๊ณ , ์ต์ ๊ฐ์"dockerInstalled":true๊ฐ ์์ต๋๋ค. - ํ๋ณด ๋ชฉ๋ก API(
DockerCapableLsvrList)๊ฐ ์๋ฒ์ ๋ฐฐํฌ๋์ด ์์ต๋๋ค.
1. ๋์ PC์ lssn๊ณผ csn ์ฐพ๊ธฐ
- ์์ด์ ํธ ์ค์ ํ์ผ
giipAgent.cfg์lssn์ ์ฝ์ต๋๋ค(sk๊ฐ์ ์ถ๋ ฅํ์ง ์์ต๋๋ค). Windows ์์ด์ ํธ๋ ์์ ์ค์ผ์ค๋ฌGIIP Agent Task (v3)์ ์คํ ๊ฒฝ๋ก์์ ํด๋๋ฅผ ์ฐพ๊ณ , ๊ทธ ๋ถ๋ชจ ํด๋์giipAgent.cfg๋ฅผ ๋ด ๋๋ค. - csn์ GIIP ์น lsvrdetail์์ ๊ทธ lssn์ ๊ฐ์ ํ์ธํฉ๋๋ค. ์ธ์คํด์ค๋ฅผ ๋ง๋ csn๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
2. ์์ด์ ํธ์ Docker ๋์ ํ์ธ
- Windows:
Get-ScheduledTask 'GIIP Agent Task (v3)' | Get-ScheduledTaskInfo์์LastTaskResult๊ฐ 0(์ฑ๊ณต) ๋๋ 267009(์คํ ์ค)์ด์ด์ผ ํฉ๋๋ค. - ์์ด์ ํธ ๋ก๊ทธ์
[CollectDockerMetrics] ... Successfully collected and uploaded Docker resource usage๊ฐ ๋งค ์คํ๋ง๋ค ์์ด์ผ ํฉ๋๋ค. - Docker Desktop์ด ์ผ์ ธ ์์ด์ผ ํฉ๋๋ค.
docker version์ด ์๋ฒ ๋ฒ์ ๊น์ง ์ถ๋ ฅํ๋์ง ํ์ธํฉ๋๋ค.
3. ๋ณด๊ณ ๋ Docker ์ฌ์ฉ๋ ํ์ธ
GIIP ์น kvslist์์ kKey=<lssn>, kFactor=docker_usage๋ก ์กฐํํฉ๋๋ค. ์ต์ ํ์ "dockerInstalled":true๊ฐ ์์ด์ผ ํ๋ณด๊ฐ ๋ฉ๋๋ค. ์๊ฑฐ๋ false์ด๋ฉด 2๋จ๊ณ๋ก ๋์๊ฐ๋๋ค.
4. ๋ชจ๋ ์ ์์ธ๋ฐ ๋ชฉ๋ก์ด ๋น์ด ์์ผ๋ฉด (๊ด๋ฆฌ์)
ํ๋ณด ๋ชฉ๋ก API๊ฐ ๋ฐฐํฌ๋์ง ์์ ๊ฒฝ์ฐ์
๋๋ค. ์์ ์๋ ์ด๋๋ ๊ฐ์ ์๋ด ๋ฌธ๊ตฌ๊ฐ ๋ ์ ์์ธ์ด ๊ฐ๋ ค์ก๊ณ , ์ง๊ธ์ "ํ๋ณด ๋ชฉ๋ก API ์๋ต์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค" ์ค๋ฅ๋ก ํ์๋ฉ๋๋ค. ๊ด๋ฆฌ์๊ฐ ์ ์ฅ ํ๋ก์์ pApiDockerCapableLsvrListbyAK์ ๋ฐฐํฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ , ์์ผ๋ฉด giipdb์ SP/pApiDockerCapableLsvrListbyAK.sql์ mgmt/execSQLFile.ps1๋ก ๋ฐฐํฌํฉ๋๋ค.
5. ์ฐ๊ฒฐํ ์๋ฒ๊ฐ ์์ ๋
- ๋์ PC์ GIIP ์์ด์ ํธ๊ฐ ์์ผ๋ฉด [Provision now]๋ฅผ ์ธ ์ ์์ต๋๋ค. ์์ด์ ํธ๋ฅผ ๋จผ์ ์ค์นยท๋ฑ๋กํ๊ฑฐ๋ **์ ์ฐจ โ (์๋)**์ ์ฌ์ฉํฉ๋๋ค.
- ์์ด์ ํธ๊ฐ ํ ๋ฒ๋ ์ ์ํ ์ ์๋ lssn(๋ง์ง๋ง ์ฒดํฌ์ธ์ด ๋น์ด ์์)์ ํ๋ณด๊ฐ ์๋๋๋ค. ์ธ์คํด์ค ์์ฑ ๋ ๋ฏธ๋ฆฌ ๋ฑ๋ก๋๋ lssn์ด ์ด๋ฐ ๊ฒฝ์ฐ์ด๋ ๋์์ผ๋ก ๊ณ ๋ฅด์ง ๋ง์ธ์.
AI๊ฐ ์ง์ผ์ผ ํ ๊ฒ
sk, ์ธ์คํด์ค ํ ํฐ, ํ ๋ณธ๋ฌธ์ ํ ํฐ์ ์ถ๋ ฅํ๊ฑฐ๋ ๊ธฐ๋กํ์ง ์์ต๋๋ค.- ๋ค๋ฅธ csn์ SK๋ก ์กฐํยท๊ธฐ๋กํ์ง ์์ต๋๋ค(๋จผ์ csn์ ํ์ธํฉ๋๋ค).
- ๊ฐ์ ์ถ์ธกํ์ง ๋ง๊ณ , ์ ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ๊ทผ๊ฑฐ๋ก ๋ณด๊ณ ํฉ๋๋ค.
๐ค AI ์์ด์ ํธ์๊ฒ ์ด ๋ฌธ์ URL๋ง ์ ๋ฌํ๋ ๊ฒฝ์ฐ
์ฌ์ฉ์๊ฐ AI ์์ด์ ํธ์๊ฒ ์ด ๋ฌธ์์ URL๋ง ์ ๋ฌํด๋(https://giip.littleworld.net/ko/guides/docker-instances, ์๋ฌธ์ https://giip.littleworld.net/help/docker-instances.ko.md) ๋์ ์๋ฒ๋ฅผ ๋๋ฆด ์ ์๋๋ก, AI๋ ๋ค์ ์์๋ฅผ ๋ฐ๋ฆ
๋๋ค.
์ฌ์ฉ์๊ฐ ์๋ ค ์ค์ผ ํ ๊ฒ: โ ์์ csn(์ธ์คํด์ค๋ฅผ ๋ง๋ค csn) โก ๋์ PC/์๋ฒ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ(์ด AI๊ฐ ๊ทธ PC์์ ์ง์ ์คํํ๋์ง, ์๊ฒฉ ์ ์์ธ์ง).
- ์ฝ๊ธฐ ์ ์ฉ ์กฐํ๋ถํฐ ํฉ๋๋ค. ๋์ PC์ OS, Docker ์ค์นยท๋ฐ๋ชฌ ์ํ(
docker version), GIIP ์์ด์ ํธ ์ค์นยท๋์ ์ํ,giipAgent.cfg์ lssn์ ํ์ธํฉ๋๋ค(sk๋ ์ถ๋ ฅํ์ง ์์ต๋๋ค). - ๋น ์ง ๋จ๊ณ๋ง ์ค์นยท์ค์ ํฉ๋๋ค. ์ "๋์ ์๋ฒ๋ฅผ ์๋ก ๋๋ฆฌ๋ ๋ฐฉ๋ฒ"์ โ ~โข ์ค ์ด๋ฏธ ์ถฉ์กฑ๋ ๊ฒ์ ๊ฑด๋๋ฆฌ์ง ์์ต๋๋ค. ์ค์น๋ ์ฌ์ฉ์ PC๋ฅผ ๋ณ๊ฒฝํ๋ ์์ ์ด๋ฏ๋ก ์คํ ์ ์ ๋ฌด์์ ์ค์นํ ์ง ์ฌ์ฉ์์๊ฒ ๋ฐํ๋๋ค.
- csn์ ์ถ์ธกํ์ง ์์ต๋๋ค. lsvrdetail๋ก ๊ทธ lssn์ csn์ ํ์ธํ๊ณ , ์ธ์คํด์ค๋ฅผ ๋ง๋ csn๊ณผ ๊ฐ์์ง ํ์ธํฉ๋๋ค.
- ํ๋ณด ๋
ธ์ถ๊น์ง ํ์ธํ ๋ค ๋ณด๊ณ ํฉ๋๋ค. kvslist์
docker_usage์์"dockerInstalled":true๋ฅผ ํ์ธํ๊ณ , ์ธ์คํด์ค ์์ฑ ํ ๋๋กญ๋ค์ด์ ํ๋ณด๋ก ๋จ๋์ง๊น์ง ํ์ธํฉ๋๋ค. Linux ์๋ฒ์ฒ๋ผ ๊ตฌ์กฐ์ ํ๋ณด๊ฐ ๋ ์ ์๋ ๊ฒฝ์ฐ์๋ ๊ทธ ์ฌ์ค๊ณผ ์ ์ฐจ โ (์๋)์ ๋ณด๊ณ ํฉ๋๋ค.
AI๊ฐ ์ง์ผ์ผ ํ ๊ฒ์ ์ "AI๊ฐ ์ง์ผ์ผ ํ ๊ฒ"๊ณผ ๊ฐ์ต๋๋ค(skยท์ธ์คํด์ค ํ ํฐ ์ถ๋ ฅ ๊ธ์ง, ๋ค๋ฅธ csn์ SK ์ฌ์ฉ ๊ธ์ง, ์ถ์ธก ๊ธ์ง).
๐ก ์ฐธ๊ณ
- Last fetched โ ์ค์๊ฐ ์์กด ์ฌ๋ถ: Last fetched๋ "๋ง์ง๋ง์ผ๋ก env๋ฅผ ๋ฐ์๊ฐ ์๊ฐ"์ ๋๋ค. ์ปจํ ์ด๋๊ฐ ๊บผ์ ธ๋ ์ด ๊ฐ์ ๊ทธ๋๋ก ๋จ์ ์์ต๋๋ค. ์ค์๊ฐ ์ํ๋ lsvrlist์ ํํธ๋นํธ๋ก ํ์ธํฉ๋๋ค.
- Revoke๋ ํ์ ์ญ์ ํ์ง ์์ต๋๋ค: Revoke๋ ํ ํฐ์ ๋ฌดํจํํ ๋ฟ ๋ชฉ๋ก ํ์ ์ง์ฐ์ง ์์ต๋๋ค. ๊ฐ์ฌ ์ด๋ ฅ์ด๋ฏ๋ก
Revoked๋ฐฐ์ง์ ํจ๊ป ๋จ์ต๋๋ค. - Revokeํด๋ ์คํ ์ค์ธ ์ปจํ
์ด๋๋ ๋ฉ์ถ์ง ์์ต๋๋ค. ์ค์ ๋ก ๋ฉ์ถ๋ ค๋ฉด ๋์ PC์์
docker compose down์ ์คํํด์ผ ํฉ๋๋ค. - ์ปจํ
์ด๋ ์ด๋ฆ: ์ ์ฐจ โ (์๋)๊ณผ ๊ธฐ์กด ์ธ์คํด์ค๋
giip-fde-agent์ ๋๋ค. [Provision now]๋ ์ธ์คํด์ค๋ง๋คgiip-fde-agent-<diSn>(compose ํ๋ก์ ํธgiip-fde-<diSn>)๋ก ๊ธฐ๋ํ๋ฏ๋ก ํ PC์ ์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ๋์ธ ์ ์์ต๋๋ค. diSn์ ๋ชฉ๋ก ํ์ diSn ์ด์์ ํ์ธํฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| "์ด csn์์ Docker Desktop์ ๊ฐ์งํ ์๋ฒ๊ฐ ์์ง ์์ต๋๋ค"๊ฐ ๋ฌ๋ค | (a) ๋์ PC์ ์์ด์ ํธ๊ฐ ์ ๋๊ฑฐ๋ Docker Desktop์ด ๊บผ์ ธ docker_usage๊ฐ ์์ (b) ์๋ฒ์ csn์ด ์ธ์คํด์ค์ csn๊ณผ ๋ค๋ฆ (c) ํ๋ณด ๋ชฉ๋ก API๊ฐ ์๋ฒ์ ๋ฐฐํฌ๋์ง ์์ | ์๋ "AI ์์ด์ ํธ์ฉ ์ฐ๊ฒฐ ๋งค๋ด์ผ" 1~4๋จ๊ณ๋ก ํ์ธํ์ธ์. ๋ฐ๋ก ์งํํ๋ ค๋ฉด ์ ์ฐจ โ (์๋)์ ์ฌ์ฉํฉ๋๋ค. |
| ํ ํฐ์ ๋ชป ์ ์ด๋๋ค | ์ฌ์กฐํ ๋ถ๊ฐ | ๊ธฐ์กด ์ธ์คํด์ค๋ฅผ 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] ์คํจ | ํ๋ฉด์ ํ์๋๋ ์ฌ์ : Forbidden: not a member of the instance csn / ...target server csn(ํด๋น csn์ ๊ตฌ์ฑ์์ด ์๋), Target server has not reported Docker Desktop(๋์์ด Docker๋ฅผ ๋ณด๊ณ ํ ์ ์์ โ ์์ด์ ํธ์ Docker Desktop ํ์ธ), still pending(์ด์ ์์ฒญ์ด ๋๊ธฐ ์ค โ ์ฝ 5๋ถ ๋ค ์ฌ์๋), Docker instance is revoked / not found(ํ๊ธฐ๋์๊ฑฐ๋ ์๋ ์ธ์คํด์ค) | ์ฌ์ ์ ๋ง๊ฒ ์กฐ์นํ์ธ์. ๋ฐ๋ก ์งํํ๋ ค๋ฉด ์ ์ฐจ โ (์๋ docker compose up)์ ์ฐ์ธ์. ํ ํฐ์ ์ ํจํฉ๋๋ค. |
| [Provision now]๋ ์ฑ๊ณต ๋ฉ์์ง๊ฐ ๋ด๋๋ฐ ๋ช ๋ถ์งธ lsvrlist์๋ ์ปจํ ์ด๋์๋ ๋ณํ๊ฐ ์๋ค | (a) ๋์ lssn์ ์์ด์ ํธ๊ฐ ์ฃฝ์ด์์ด ์ ์ด์ ํด๋ง์ ์ ํจ (b) ์ด ์ค์ผ์ค๋ง ๋ฐฐ๊ธ ๋ถ๊ฐ(BLOCKED)๋ก ๊ฒฉ๋ฆฌ๋จ (giip #2557๋ฅ) | (a) lsvrdetail์์ ๊ทธ lssn์ ๋ง์ง๋ง ์ฒดํฌ์ธ ์๊ฐ ํ์ธ โ ์ค๋๋์ผ๋ฉด ๋์ PC์ ์์ด์ ํธ/๋คํธ์ํฌ๋ถํฐ ์ ๊ฒ (b) ๊ด๋ฆฌ์์๊ฒ ํด๋น lssn/csn ๊ธฐ์ค์ผ๋ก ๋ฐฐ๊ธ ๋ถ๊ฐ ์ค์ผ์ค์ด ์๋์ง ํ์ธ ์์ฒญ. ๋ช ๋ถ ๊ธฐ๋ค๋ ค๋ ์ ๋๋ฉด ์ ์ฐจโ (์๋)์ผ๋ก ์ ํ |
| Slack ๋ด์ด ์ ๋ฌ๋ค | SLACK_BOT_TOKEN๊ณผ SLACK_APP_TOKEN ๋ ๋ค ํ์ | ํ๋๋ง ์์ผ๋ฉด ๋ ๋ค ๊ฑด๋๋๋๋ค. |
| ์ ์ ์ฆ์ ํ์ผ๋ก ํ๊น | uLevel์ด 70 ๋ฏธ๋ง | ๊ด๋ฆฌ์ ๊ณ์ (๋ ๋ฒจ 70+)์ผ๋ก ๋ก๊ทธ์ธํ์ธ์. |
๋ฒ์ : 1.3
์ต์ข
์์ : 2026-10-15 (๋์ ์๋ฒ๋ฅผ ์๋ก ๋๋ฆฌ๋ ๋ฐฉ๋ฒ, AI์๊ฒ ๋ฌธ์ URL๋ง ์ ๋ฌํ๋ ๊ฒฝ์ฐ ์ ์ถ๊ฐ)
์์ค ํ์ผ: giipv3/public/help/docker-instances.ko.md