+post 전체 조회 정렬하기
+cicd 리펙토링
version : "3"
services:
nginx:
container_name: nginx
image: nginx
restart: always
ports:
- "80:80"
volumes:
- ./nginx/:/etc/nginx/conf.d/
db:
container_name: prolog-db
image: mysql
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
ports:
- "3306:3306"
volumes:
- ./mysqldata:/var/lib/mysql
restart: always
blue:
container_name: blue
image: fortune00/prolog
expose:
- "8080"
working_dir: /app
depends_on:
- db
restart: always
environment:
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL}
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
REDIRECT_URI: ${REDIRECT_URI}
JWT_ISSUER: ${JWT_ISSUER}
JWT_SECRET_KEY: ${JWT_SECRET_KEY}
CLIENT_ID: ${CLIENT_ID}
CLIENT_SECRET: ${CLIENT_SECRET}
AWS_ACCESS_KEY: ${AWS_ACCESS_KEY}
AWS_SECRET_KEY: ${AWS_SECRET_KEY}
green:
container_name: green
image: fortune00/prolog
expose:
- "8080"
working_dir: /app
depends_on:
- db
restart: always
environment:
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL}
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
REDIRECT_URI: ${REDIRECT_URI}
JWT_ISSUER: ${JWT_ISSUER}
JWT_SECRET_KEY: ${JWT_SECRET_KEY}
CLIENT_ID: ${CLIENT_ID}
CLIENT_SECRET: ${CLIENT_SECRET}
AWS_ACCESS_KEY: ${AWS_ACCESS_KEY}
AWS_SECRET_KEY: ${AWS_SECRET_KEY}
RUNNING_CONTAINER=$(docker ps | grep blue)
DEFAULT_CONF="nginx/default.conf"
if [ -z "$RUNNING_CONTAINER" ]; then
TARGET_SERVICE="blue"
OTHER_SERVICE="green"
else
TARGET_SERVICE="green"
OTHER_SERVICE="blue"
fi
echo "$TARGET_SERVICE Deploy..."
docker-compose pull $TARGET_SERVICE
docker-compose up -d $TARGET_SERVICE
# Wait for the target service to be healthy before proceeding
while true; do
echo "$TARGET_SERVICE health check...."
HEALTH=$(docker-compose exec nginx curl http://$TARGET_SERVICE:8080)
if [ -n "$HEALTH" ]; then
break
fi
sleep 3
done
# Update the nginx config and reload
sed -i "" "s/$OTHER_SERVICE/$TARGET_SERVICE/g" $DEFAULT_CONF
docker-compose exec nginx service nginx reload
# Stop the other service
docker-compose stop $OTHER_SERVICE