👓
【docker】OSSのヘッドレスCMSのstrapiをmongoDBとともにローカル起動する
strapiとは
OSSのヘッドレスCMSです。
コンテンツをAPI化してバックエンドを担います。
構築設定
dockerイメージは公式から正式に推奨されていませんが、
今回はローカルで起動させたいのでdockerで実施します。
dbはドキュメント指向データベースのmongoDBを利用します。
MySQLやpostgleSQLでもdockerで構築できるようですが、
公式のgithub掲載手順でやってもyarnの依存関係エラーが出るので一旦あきらめました。
<公式のサポートdoc>
.env
docker-composeファイルから読むenvファイルです。
DATABASE_CLIENT=mongo
DATABASE_NAME=strapi
DATABASE_HOST=mongoexample
DATABASE_PORT=27017
DATABASE_USERNAME=strapi
DATABASE_PASSWORD=password
MONGO_INITDB_ROOT_USERNAME=strapi
MONGO_INITDB_ROOT_PASSWORD=password
docker-compose.yaml
version: "3"
services:
strapiexample:
image: strapi/strapi
container_name: strapiexample
restart: unless-stopped
env_file: .env
environment:
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_HOST: ${DATABASE_HOST}
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
networks:
- strapi-app-network
volumes:
- ./app:/srv/app
ports:
- "1337:1337"
mongoexample:
image: mongo
container_name: mongoexample
restart: unless-stopped
env_file: .env
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
networks:
- strapi-app-network
volumes:
- strapidata:/data/db
ports:
- "27017:27017"
networks:
strapi-app-network:
driver: bridge
volumes:
strapidata:
起動
起動します。
$ docker compose up
こんな感じのメッセージが出力すればOKです。
strapi | To access the server, go to:
strapi | http://localhost:1337
アクセス
http://localhost:1337/admin にアクセスします。
初回アクセス時はアカウントの作成が求められます。
操作画面
アカウントを作成すると以下のようなGUIに遷移するので、
APIを作成してみたりコールしてみてください。
注意点
APIを作成しても権限付与をしないと404エラーになります。
「設定」→「ロールと権限」→PublicからfindとfidoneをONにしましょう。
設定はAPI毎に分かれています。
Discussion