EC2 환경 세팅 (2대 기준)

EC2 환경 버전
SpringBoot + React t3.medium
Jenkins t3.medium

Ubuntu 시간 설정

시간 설정

timedatectl
sudo timedatectl set-timezone Asia/Seoul
Time zone: Asia/Seoul (KST, +0900)

Jenkins 에 Dockerfile과 docker-compose.yml 파일 세팅

services:
  jenkins:
    build: .
    container_name: jenkins
    ports:
      - "7070:8080"
      - "50000:50000"
    user: root
    volumes:
      - ./volumes/jenkins:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/localtime:/etc/localtime:ro         # 로컬 시간 설정
    environment:
      - TZ=Asia/Seoul                            # 로컬 시간 설정
    restart: unless-stopped
# ~/jenkins/Dockerfile
FROM jenkins/jenkins:lts-jdk17

USER root

# Docker CLI 설치
RUN apt-get update && \\
    apt-get install -y \\
    docker.io \\
    docker-compose && \\
    apt-get clean

# 심볼릭 링크 (docker 명령 오류 방지용)
RUN ln -s /usr/bin/docker.io /usr/bin/docker || true

# Jenkins 유저에게 docker 그룹 권한 부여
RUN usermod -aG docker jenkins

USER jenkins
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \\
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] <https://download.docker.com/linux/ubuntu> \\
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \\
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

ubuntu@ip-172-31-34-164:~$ sudo usermod -aG docker $USER
ubuntu@ip-172-31-34-164:~$ newgrp docker
ubuntu@ip-172-31-34-164:~$ docker info
docker-compose up -d --build

# docker compose version 확인
docker compose version

Jenkins Container 접속