이번 스프린트에 맡은 일

+post 전체 조회 정렬하기

+cicd 리펙토링

무중단 배포 #62

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

Untitled

이미지 업로드 #60

Untitled