EC2 ssh 접속
코드 git clone
docker 설치
jdk 설치
./gradlew clean build
docker build
docker images 확인
docker run
docker ps 확인
sudo dd if=/dev/zero of=/swapfile bs=128MB count=32
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
sudo vi /etc/fstab
여기서 추가
/swapfile swap swap defaults 0 0
Free -h 로 확인
sudo service install docker
sudo service docker start
확인
sudo systemctl status docker
sudo yum install java-11
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.9'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
jar {
enabled = false
}
spring:
datasource:
# url: jdbc:mysql://{ec2 public IP}:3306/{DB 이름}
username: root ( 잘모르겠다면 root)
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update # 스키마 자동 생성
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
show-sql: true # SQL 쿼리 출력
properties:
hibernate:
format_sql: true # SQL pretty print
server:
port : 8080
./gradlew clean build
내장 그래들러로 빌드한다.
기존의 이미지를 지우고 새롭게 빌드를 한다.
이때 읽는 파일이 application.yml 이다
docker build -t {repo:tag} .
root@ip-172-31-43-211:~/dubu-party# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dubu 0.0.1 f65afbfc6587 38 seconds ago 699MB
Mysql 8 버전 이미지를 불러와서
-d 데몬 (백그라운드 작업으로 )
-p 3306 포트로 지정해서 진행한다.
sudo docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0
docker run -d -p 8080:8080 image:tag
docker ps
mysql에서 create database 만들어주기
docker-compose.yml 작성
version: '3'
services:
mysql:
image: mysql:8.0
container_name: mysql
ports:
- 3306:3306 # HOST:CONTAINER
environment:
MYSQL_ROOT_PASSWORD: admin
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- D:/mysql/data:/var/lib/mysql
실행
docker-compose -f docker-compose.yml up -d
느낀점
배포에서 정말 많은 어려움을 느꼈다.
docker의 역할, mysql을 연결하는 과정, mysql이 돌아가고 있는지 확인하는 법
spring이 꺼지는 이유 등을 하나씩 알아가며 배포에 대해 공부를 하게 되었다.
10시간 정도 소요한 것 같은데.. 앞으로 모든 과정에 대해서도 잘 기록하고 이겨내자