[Docker] Springboot + MySQL + Selenium을 도커 컨테이너 환경에서 운영하기
2024. 4. 17. 23:00ㆍDevops/Docker
AWS에 Docker를 이용하여 배포하기 위해 Docker컨테이너 환경에서 Springboot, MySQL, Selenium를 운영테스트를 진행했다.
구현 환경
JDK 17 JetBrains
MySQL 8.3.0
Springboot 3.2.4
gradle
Intellij
1. 아래에 두 파일을 프로젝트 최상위 폴더에 작성하고 시작하면 된다.
Dockerfile
FROM openjdk:17
WORKDIR /app
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
docker-compose.yml
version: '3.8'
services:
mysql:
image: mysql:8-oracle
container_name: mysql
restart: "always"
environment:
MYSQL_ROOT_PASSWORD: dummypassword
MYSQL_DATABASE: social-media-database
MYSQL_USER: social-media-user
MYSQL_PASSWORD: dummypassword
TZ: Asia/Seoul
ports:
- "3306:3306" # 호스트 포트:컨테이너 포트
volumes:
- ./db/mysql/data:/var/lib/mysql
- ./db/mysql/init:/docker-entrypoint-initdb.d
java_app:
build:
context: .
dockerfile: Dockerfile
container_name: java_app
restart: "always"
depends_on:
- mysql
links:
- mysql
ports:
- "5000:5000" # 호스트 포트:컨테이너 포트
environment:
DATABASE_URL: jdbc:mysql://mysql:3306/social-media-database
DATABASE_USERNAME: social-media-user
DATABASE_PASSWORD: dummypassword
chrome:
image: selenium/standalone-chrome:latest
hostname: chrome
ports:
- "4444:4444"
- "7900:7900"
privileged: true
shm_size: 2g
framework:
build: .
depends_on:
- chrome
volumes:
mysql_data:
Docker 컨테이너에서 MySQL과 Selenium에 사용되는 호스트 네임은 mysql, chrome로 사용하도록 작성하였다.
2. Gradle - build - bootjar로 jar파일을 빌드
3. 그 다음 인텔리제이에서 도커를 설치하고 yml파일을 우클릭 -> run으로 실행하면
이렇게 컨테이너들이 시작되었다고 나오면 성공이다
Docker desktop
Spring Scheduler로 매 시 10분마다 인기검색어 업데이트를 해두었다.
'Devops > Docker' 카테고리의 다른 글
[Docker] Docker컨테이너에 selenium환경 구축하기 (0) | 2024.04.16 |
---|---|
[Docker] window에 Docker 설정하기 (0) | 2024.04.11 |
[Docker] 도커 설치 & 도커에 Myspl 사용하기 (0) | 2024.03.18 |