Skip to content

Commit

Permalink
chore: 2개 인스턴스가 시간차를 두고 재시작하도록 설정
Browse files Browse the repository at this point in the history
  • Loading branch information
yangchef1 committed Dec 3, 2024
1 parent e39bfba commit efd6eec
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 19 deletions.
10 changes: 8 additions & 2 deletions .github/workflows/CD.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,13 @@ jobs:
# Build
pnpm build
# Restart pm2
pm2 startOrReload apps/server/ecosystem.config.js --env production
# Restart first instance
pm2 restart harmony-api --env production || pm2 start apps/server/ecosystem.config.js --env production
# Wait for server to start
sleep 5
# Restart second instance
pm2 restart harmony-api2 --env production || pm2 start apps/server/ecosystem.config.js --env production
echo "Deployment Success"
46 changes: 29 additions & 17 deletions apps/server/ecosystem.config.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,41 @@
require('dotenv').config();

const commonEnv = {
DATABASE_HOST: process.env.DATABASE_HOST,
DATABASE_PORT: process.env.DATABASE_PORT,
DATABASE_NAME: process.env.DATABASE_NAME,
DATABASE_PASSWORD: process.env.DATABASE_PASSWORD,
DATABASE_USER: process.env.DATABASE_USER,
JWT_ACCESS_TOKEN_SECRET: process.env.JWT_ACCESS_TOKEN_SECRET,
JWT_ACCESS_TOKEN_TIME: process.env.JWT_ACCESS_TOKEN_TIME,
JWT_REFRESH_TOKEN_SECRET: process.env.JWT_REFRESH_TOKEN_SECRET,
JWT_REFRESH_TOKEN_TIME: process.env.JWT_REFRESH_TOKEN_TIME,
OBJECT_STORAGE_ACCESS_KEY: process.env.OBJECT_STORAGE_ACCESS_KEY,
OBJECT_STORAGE_SECRET_KEY: process.env.OBJECT_STORAGE_SECRET_KEY,
OBJECT_STORAGE_REGION: process.env.OBJECT_STORAGE_REGION,
OBJECT_STORAGE_BUCKET_NAME: process.env.OBJECT_STORAGE_BUCKET_NAME,
OBJECT_STORAGE_ENDPOINT: process.env.OBJECT_STORAGE_ENDPOINT,
};

module.exports = [
{
name: 'harmony-api',
script: 'apps/server/dist/src/main.js',
instances: 2,
exec_mode: 'cluster',
instances: 1,
env: {
NODE_ENV: 'production',
PORT: 3000,
},
env_production: {
DATABASE_HOST: process.env.DATABASE_HOST,
DATABASE_PORT: process.env.DATABASE_PORT,
DATABASE_NAME: process.env.DATABASE_NAME,
DATABASE_PASSWORD: process.env.DATABASE_PASSWORD,
DATABASE_USER: process.env.DATABASE_USER,
JWT_ACCESS_TOKEN_SECRET: process.env.JWT_ACCESS_TOKEN_SECRET,
JWT_ACCESS_TOKEN_TIME: process.env.JWT_ACCESS_TOKEN_TIME,
JWT_REFRESH_TOKEN_SECRET: process.env.JWT_REFRESH_TOKEN_SECRET,
JWT_REFRESH_TOKEN_TIME: process.env.JWT_REFRESH_TOKEN_TIME,
OBJECT_STORAGE_ACCESS_KEY: process.env.OBJECT_STORAGE_ACCESS_KEY,
OBJECT_STORAGE_SECRET_KEY: process.env.OBJECT_STORAGE_SECRET_KEY,
OBJECT_STORAGE_REGION: process.env.OBJECT_STORAGE_REGION,
OBJECT_STORAGE_BUCKET_NAME: process.env.OBJECT_STORAGE_BUCKET_NAME,
OBJECT_STORAGE_ENDPOINT: process.env.OBJECT_STORAGE_ENDPOINT,
env_production: commonEnv,
},
{
name: 'harmony-api2',
script: 'apps/server/dist/src/main.js',
instances: 1,
env: {
NODE_ENV: 'production',
PORT: 3001,
},
env_production: commonEnv,
},
];

0 comments on commit efd6eec

Please sign in to comment.