コンテンツにスキップ

Dockerでデプロイ

HolloはGitHub Packagesで公式のDockerイメージを提供しています。 そのイメージをローカルマシンでHolloをデプロイできます:

docker pull ghcr.io/dahlia/hollo:latest

Holloを実行するには、PostgreSQLのデータベースとメディアを保存するためのS3互換のオブジェクトストレージが必要です。 PostgreSQLの公式のDockerイメージとS3互換のオブジェクトストレージであるMinIOを使うことができます。 またはAWSのRDSElastiCacheS3などのマネージドサービスを使用することもできます。

Holloにこれらのサービスを組み合わせるには、 docker runコマンドの-e/--envオプションまたは--env-fileオプションを使用して 環境変数を設定する必要があります。 Holloがサポートする環境変数のリストは環境変数章で確認できます。

Docker Compose

PostgreSQLとS3互換のオブジェクトストレージなどをHolloに接続してデプロイするために、 Docker Composeを使用することができます。以下はcompose.yamlファイルの例です:

compose.yaml
services:
hollo:
image: ghcr.io/dahlia/hollo:canary
ports:
- "3000:3000"
environment:
DATABASE_URL: "postgres://user:password@postgres:5432/database"
SECRET_KEY: "${SECRET_KEY}"
LOG_LEVEL: "${LOG_LEVEL}"
BEHIND_PROXY: "${BEHIND_PROXY}"
S3_REGION: us-east-1
S3_BUCKET: hollo
S3_URL_BASE: http://localhost:9000/hollo/
S3_ENDPOINT_URL: http://minio:9000
S3_FORCE_PATH_STYLE: "true"
AWS_ACCESS_KEY_ID: minioadmin
AWS_SECRET_ACCESS_KEY: minioadmin
depends_on:
- postgres
- minio
- create-bucket
restart: unless-stopped
postgres:
image: postgres:17
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: database
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
minio:
image: minio/minio:RELEASE.2024-09-13T20-26-02Z
ports:
- "9000:9000"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
volumes:
- minio_data:/data
command: ["server", "/data", "--console-address", ":9001"]
create-bucket:
image: minio/mc:RELEASE.2024-09-16T17-43-14Z
depends_on:
- minio
entrypoint: |
/bin/sh -c "
/usr/bin/mc alias set minio http://minio:9000 minioadmin minioadmin;
/usr/bin/mc mb minio/hollo;
/usr/bin/mc anonymous set public minio/hollo;
exit 0;
"
volumes:
postgres_data:
minio_data:

上記のファイルを作業ディレクトリにcompose.yamlとして保存し、次のコマンドを実行します:

docker compose up -d