DevモードからProductionモードへの移行
agency-os/.env
コンテナのローカルIPアドレスからドメインへ変更
変更前
DIRECTUS_URL="http://172.xx.xx.1:8055"
DIRECTUS_SERVER_TOKEN="cE4_7r4JaphkuYDhnSjnXZE9-kAGlbNI"
NUXT_PUBLIC_SITE_URL="http://172.xx.xx.1:3000"
変更後
DIRECTUS_URL="https://api_test.example.com"
DIRECTUS_SERVER_TOKEN="xxxxxxxxxxxxxxxxxxxxxx"
NUXT_PUBLIC_SITE_URL="https://test.example.com"
agency-os/nuxt.config.ts
環境変数で指定されているので http://localhost:3000
はそのままで可。
siteUrl: process.env.NUXT_PUBLIC_SITE_URL || 'http://localhost:3000',
データベースの操作
ローカル環境で作成したコンテンツの画像リンク先を修正。
ビルド
コンテナ内でビルド
$ docker compose exec agency-os bash
# pnpm build
pnpm dev から pnpm start へ変更
コンテナ内でビルドコマンドを実行(コードを編集した場合やコンテンツを追加した場合にも実行)。
# pnpm build
上記ビルドコマンドを実行し./outputフォルダが作成されたらnodeコマンドで起動。
docker-compose.yaml
# entrypoint: ["/bin/bash"] # Initial entry point. need to execute "pnpm i" then "pnpm build" or start debug mode "pnpm dev"
entrypoint: ["node", ".output/server/index.mjs"] # after "pnpm build" for running static pages
環境変数は以下参照。必要に応じてdocker-compose.yamlのenvironmentセクション、または.envファイルに記載。
上記スクリプトコマンドは以下参照。
agency-os/package.json
{
"private": true,
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"start": "nuxt start",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare",
"typecheck": "nuxt typecheck",
"lint": "eslint --cache .",
"format": "prettier --write \"**/*.{md,y?(a)ml,json,vue}\""
},
コンテナ内でドメイン名を解決するため、directusとagency-os各サービスに以下のセクションを追加。
ただし、directusのセクションのみ
PUBLIC_URL: 'http://api_test.ficusonline.com'
を追加
docker-compose.yaml
### directus,agency-osセクションに追加(Dev・Productionモードで共に指定可)
extra_hosts:
- "api.example.com:172.22.0.1"
- "www.example.com:172.22.0.1"
### directusセクションのみ追加(Devモードではコメントアウト)
environment:
PUBLIC_URL: 'https://api_test.example.com'