Post

๐Ÿฆž OpenClaw Docker Compose ์„ค์ • ๋ฐ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜๊ธฐ

Dockerfile, docker-compose.yml ๊ธฐ๋ฐ˜์œผ๋กœ OpenClaw๋ฅผ ๋น ๋ฅด๊ฒŒ ์˜ฌ๋ฆฌ๊ณ  ๋ธŒ๋ผ์šฐ์ € ์‹คํ–‰๊นŒ์ง€ ์—ฐ๊ฒฐํ•˜๊ธฐ

๐Ÿฆž OpenClaw Docker Compose ์„ค์ • ๋ฐ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜๊ธฐ

์ด์ „์—๋Š” Ubuntu ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•ด์„œ ํŒจํ‚ค์ง€๋ฅผ ์ผ์ผ์ด ์„ค์น˜ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ๊ณผ์ •์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ญ

์ด์ œ๋Š” Dockerfile๊ณผ docker-compose.yml์„ ํ™œ์šฉํ•˜์—ฌ ๋” ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ OpenClaw๋ฅผ ์„ค์น˜ํ•˜๊ณ ,

๐Ÿฆž OpenClaw๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค !

1) ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์ค€๋น„

1
2
mkdir -p ~/Documents/openclaw-docker-compose
cd ~/Documents/openclaw-docker-compose

2) Dockerfile ์ž‘์„ฑ

์€๊ทผํžˆ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” npm ์„ค์น˜์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ node, npm ์ด ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š” node:22-bookworm ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด์— Ubuntu ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•ด ์ˆ˜๋™์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋˜ ๊ณผ์ •์„ Dockerfile๋กœ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด๋‘๋ฉด, ์žฌ์„ค์น˜ ์‹œ ๋นŒ๋“œ๋งŒ์œผ๋กœ ๋™์ผํ•œ ํ™˜๊ฒฝ์„ ๋น ๋ฅด๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# npm ์„ค์น˜์‹œ๊ฐ„ ๋‹จ์ถ•์„ ์œ„ํ•ด node:22 ์ด๋ฏธ์ง€ ์‚ฌ์šฉ
FROM node:22-bookworm

SHELL ["/bin/bash", "-c"]

# ํ•„์ˆ˜ or ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€ ์„ค์น˜ (apt update & install ๋ฌถ์Œ), chromium ๋ธŒ๋ผ์šฐ์ € ์„ค์น˜
RUN apt-get update && apt-get install -y \
    ca-certificates \
    curl \
    jq \
    git \
    chromium \
    fonts-liberation \
    xdg-utils \
    && rm -rf /var/lib/apt/lists/*

# OpenClaw ๊ธ€๋กœ๋ฒŒ ์„ค์น˜
RUN which node && node -v && npm -v && npm i -g openclaw

# ๊ธฐ๋ณธ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •
WORKDIR /workspace

# ์‹คํ–‰ ์‹œ ๊ธฐ๋ณธ ์‰˜
CMD ["bash"]

3) docker-compose.yml ์ž‘์„ฑ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3.8'
services:
  openclaw-base:
    build: .
    container_name: openclaw-base
    stdin_open: true
    tty: true
    volumes:
      - "$HOME/Documents/openclaw/openclaw-workspace:/workspace"
      - "$HOME/Documents/openclaw/openclaw-data:/root/.openclaw"
    working_dir: /workspace
    ports:
      - "18789:18789"
    command: bash

4) ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

1
docker compose up -d --build

5) OpenClaw ์˜จ๋ณด๋”ฉ

1
openclaw onboard

์˜จ๋ณด๋”ฉ ์ˆœ์„œ๋Š” ๊ธฐ์กด๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค !

์˜จ๋ณด๋”ฉ ๊ณผ์ •์€ ์ด ํฌ์ŠคํŒ…์—์„œ ๋” ์ž์„ธํ•˜๊ฒŒ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  1. QuickStart ์„ ํƒ
  2. ๋ชจ๋ธ/์ธ์ฆ ๋ฐฉ์‹ ์„ ํƒ
  3. Telegram Bot Token ์ž…๋ ฅ
  4. ์™„๋ฃŒ

6) ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ ์„ค์ • (Chromium)

์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์—์„œ๋Š” ๋ธŒ๋ผ์šฐ์ € ๊ฒฝ๋กœ์™€ ์ƒŒ๋“œ๋ฐ•์Šค ์˜ต์…˜์„ ๋ช…์‹œํ•˜๋Š” ๊ฒŒ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

(cdpPort ๋ณ€๊ฒฝ์€ openclaw ์—๊ฒŒ ๊ถŒ์œ ๋ฐ›์•„์„œ ์„ธํŒ…ํ•จ. ํฌํŠธ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์–ด ๋ณ€๊ฒฝํ–ˆ๋‹ค๊ณ  ํ•จ.)

1
2
3
4
openclaw config set browser.headless true
openclaw config set browser.noSandbox true
openclaw config set browser.executablePath /usr/bin/chromium
openclaw config set browser.profiles.openclaw.cdpPort 18900

Gateway ์žฌ์‹œ์ž‘ ํ›„ ๋ธŒ๋ผ์šฐ์ € ์ƒํƒœ ํ™•์ธ:

1
2
3
4
5
6
openclaw gateway stop || true
rm -f ~/.openclaw/run/gateway.lock ~/.openclaw/run/gateway.pid 2>/dev/null || true
openclaw gateway &
sleep 3
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw status --json

7) ๋ธŒ๋ผ์šฐ์ € ์—ฐ๊ฒฐ ํ™•์ธ !

1
openclaw browser --browser-profile openclaw status

์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋˜๋ฉด ์—ฐ๊ฒฐ ์„ฑ๊ณต !

1
2
3
4
5
6
7
8
9
profile: openclaw
enabled: true
running: true
cdpPort: 18800
cdpUrl: http://127.0.0.1:18800
browser: custom
detectedBrowser: custom
detectedPath: /usr/bin/chromium
profileColor: #FF4500

๋ !! ์ด์ œ ๋ธŒ๋ผ์šฐ์ € ์—ด์–ด์„œ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ์‹œํ‚ค๋ฉด ๋œ๋‹ค ๐Ÿฆž !!

addAll()

This post is licensed under CC BY 4.0 by the author.