ローカル
docker compose -f docker-compose.dev.yml down --volumes
docker builder prune -af
本番
docker compose -f docker-compose.yml down --volumes
docker builder prune -af
DOCKER_BUILDKIT=1 docker build --no-cache --secret id=npmrc,src=.npmrc -t remake-pokpok .
ローカル
docker compose -f docker-compose.dev.yml up
本番
docker compose -f docker-compose.yml up
なるほど、Docker コンテナ内で実行したいわけですね 🐳
Fastify アプリを Docker 化しているなら、以下のような手順で seedRepositories.js をコンテナ内で走らせられます。
docker-compose exec で直接実行もし docker-compose.yml があってサービス名が app なら:
docker-compose exec app node scripts/seedRepositories.js
app は Node.js が動いているコンテナサービス名に合わせてください(例: remake-pokpok)。.env ファイルがイメージに組み込まれていれば、そのまま環境変数を読めます。docker exec -it remake-pokpok bash
node scripts/seedRepositories.js
remake-pokpok は実際のコンテナ名。node コマンドで実行。例えば package.json にスクリプトを追加:
{
"scripts": {
"seed:repositories": "node scripts/seedRepositories.js"
}
}
そしたら:
docker-compose exec app npm run seed:repositories
scripts/seedRepositories.js が イメージに含まれていること を確認してください。MONGODB_URI は .env で docker-compose.yml の environment に渡しておくと確実です。例 (docker-compose.yml の app サービス):
services:
app:
build: .
environment:
- MONGODB_URI=mongodb://mongo:27017/remake-pokpok-db
volumes:
- .:/app
depends_on:
- mongo