메인 콘텐츠로 건너뛰기
Docker Compose

한 호스트에서 실행되는 하나의 Human Plugin 컨테이너를 고객의 PostgreSQL 데이터베이스에 연결합니다.

Markdown

사전 요구 사항​

  • Docker Compose v2가 포함된 Docker Engine 24 이상.
  • 호스트에서 접근할 수 있는, Human Plugin 전용 PostgreSQL 데이터베이스. 사전 요구 사항 및 액세스를 참고하세요.
  • Unico에서 받은 레지스트리 자격 증명과 액세스 키.

1. 레지스트리에 로그인​

호스트마다 한 번만 실행합니다. Docker는 자격 증명을 ~/.docker/config.json에 보관합니다.

echo "<token>" | docker login pkg.unico.run -u <username> --password-stdin

2. 설정 작성​

Human Plugin용 디렉터리와, 소유자만 읽을 수 있는 .env 파일을 만듭니다.

mkdir -p /opt/human-plugin && cd /opt/human-plugin
.env
HUMAN_API_ACCESS_KEY=<your access key>
POSTGRES_ADDRESS_HOST=<database host>
POSTGRES_USER=human_plugin
POSTGRES_PASSWORD=<database password>
chmod 600 .env

데이터베이스가 구성의 기본값과 다른 경우에만 POSTGRES_ADDRESS_PORT, POSTGRES_DATABASE, POSTGRES_SSL_MODE를 추가하세요. .env 파일은 절대 커밋하지 마세요.

3. compose.yaml 작성​

compose.yaml
services:
human-plugin:
image: pkg.unico.run/human-plugin-api:latest
pull_policy: always
restart: unless-stopped
stop_grace_period: 60s
env_file: .env
ports:
- "127.0.0.1:8080:8080"
  • ports: 127.0.0.1 또는 프라이빗 인터페이스에만 게시하고, 0.0.0.0에는 절대 게시하지 마세요. Human Plugin에는 자체 인증이 없습니다. 네트워킹 및 보안을 참고하세요.
  • stop_grace_period: 60s: Human Plugin은 중지될 때 처리 중인 요청을 최대 55초 동안 기다립니다. 유예 시간이 더 짧으면 생성 요청이 중간에 끊길 수 있습니다.
  • pull_policy: always: up을 실행할 때마다 최신 이미지를 확인하므로 항상 가장 최신 릴리스를 실행합니다.

4. 시작​

docker compose up -d
curl --fail http://127.0.0.1:8080/health/ready

/health/ready가 200으로 응답한 후에만 Human Plugin으로 트래픽을 라우팅하세요. 그런 다음 빠른 시작의 생성 요청을 실행해 보세요.

로그와 상태​

docker compose ps
docker compose logs -f human-plugin

정상적인 시작은 human plugin listening 줄로 끝납니다. 전체 시작 로그는 상태 확인 및 모니터링을 참고하세요. 컨테이너가 반복해서 재시작되면 로그에 이유가 표시됩니다. 문제 해결을 참고하세요.

업데이트​

docker compose pull && docker compose up -d

Compose는 이미지가 변경된 경우에만 컨테이너를 교체합니다. 업데이트 후 확인할 사항은 운영을 참고하세요.

중지​

docker compose down

데이터는 고객의 PostgreSQL 데이터베이스에 있으므로 컨테이너를 중지하거나 삭제해도 잃는 것이 없습니다.