ETC/Docker

Docker 기본 배포

Raconer 2024. 9. 3. 09:42
728x90

Dockerfile

도커 이미지 생성 파일

FROM openjdk:11-jre-slim
WORKDIR /app
COPY ./application.jar /app/application.jar
RUN mkdir -p ./logs
CMD ["java", "-Duser.timezone=Asia/Seoul", "-Dspring.profiles.active=dev", "-jar", "application.jar"]
  

docker-compose.yml

도커 컴포즈 실행 파일

services:
  application:
    container_name: application_container
    restart: unless-stopped
    image: application-image:latest
    ports:
      - "8080:8080"
    volumes:
      - ./logs:/logs
  

restart.sh

애플리케이션 재실행 스크립트

#!/bin/bash

# restart Application With Docker
echo "Application Docker Restarting..."

IMAGE_NAME="application-image"
CONTAINER_NAME="application"

echo ""
echo "Move Jar File"
sudo mv -f /home/ubuntu/build/libs/application.jar ./application.jar

echo "Create Image"
sudo docker build -t $IMAGE_NAME .

echo "Check Docker Running"
# 실행 중인 컨테이너 ID 가져오기
CONTAINER_ID=$(sudo docker ps -q -f name=$CONTAINER_NAME)

# 컨테이너 ID가 비어 있는지 확인
if [ -n "$CONTAINER_ID" ]; then
  echo "Stopping and removing existing container..."
  sudo docker stop $CONTAINER_ID
  sudo docker rm $CONTAINER_ID
else
  echo "No running container with the name $CONTAINER_NAME found."
fi

echo "Start Docker Compose '$CONTAINER_NAME'"
sudo docker-compose up -d

echo "Process Completed"
  
728x90

'ETC > Docker' 카테고리의 다른 글

Docker Network 기본 사용법 과 Tip  (0) 2023.08.09
Docker Network  (0) 2023.08.09
내가 이해한 Volume이란?  (0) 2023.08.03
Mysql 설정 및 기본 명령어  (0) 2023.08.03
Docker Swarm과 Kubernetes(K8s) 비교  (0) 2023.07.26