자기소개 페이지
제약사항
- Docker Container로 DB와 프론트 페이지를 실행 (DBMS 및 Web Server의 종류는 무관)
- EC2 인스턴스(프리티어 범주내)를 하나 생성해서 해당 인스턴스에서 1번의 도커 컨테이너를 실행
- 프론트 페이지에서 필요로 하는 데이터는 Lambda, API Gateway를 이용해서 제공할 수 있도록 구현
Docker 설치
https://www.docker.com/get-started
원활한 환경을 위해서는 제어판 -> 프로그램 켜기/끄기 -> HyperV 체크
kernel에러가 발생하면 링크로 접속하여 설치 후 재부팅
Spring project 작성
build.gradle
application.yml
작업 디렉토리의root에 Dockerfile, docker-compose.yml작성
# Dockerfile
FROM lpicanco/java11-alpine
VOLUME /tmp
ARG JAR_FILE=./build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
# docker-compose.yml
version : "3"
services:
database:
image: mysql
security_opt:
- seccomp:unconfined
container_name: mydb
environment:
- MYSQL_DATABASE=portfolio
- MYSQL_ROOT_HOST=%
- MYSQL_ROOT_PASSWORD=1234
command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
ports:
- 3306:3306
volumes:
- db_data:/var/lib/mysql
networks:
- web-network
application:
build: .
restart: always
ports:
- 8080:8080
volumes:
- db_data:/var/lib/spring
depends_on:
- database
container_name: web
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mydb:3306/portfolio?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&&allowPublicKeyRetrieval=true
SPRING_DATABASE_USERNAME: root
SPRING_DATABASE_PASSWORD: 1234
networks:
- web-network
networks:
web-network:
volumes:
db_data:
빌드 후 dockecompose 실행
mydb(Mysql container) 데이터 작업
데이터 저장 후 flush privileges;
container 실행 후 확인
image push
생성한 이미지를 dockerhub에 push
docker hub에 repository 생성, cmd에서 docker login후에 작업
# 도커 이미지에 태그작업
# docker tag <이미지 명> <사용자명>/<repo명>:<태그>
> docker tag mysql jjr951122/mysql:1.0.1
> docker tag web_application jjr951122/web_application:1.0.1
# > docker push <사용자 아이디>/<이미지명>:<태그>
> docker push jjr951122/web-application:1.0.1
> docker push jjr951122/mysql:1.0.1
'CICD' 카테고리의 다른 글
[Kubernetes] Volume(기본 오브젝트) (0) | 2022.01.04 |
---|---|
[Kubernetes] Service(기본 오브젝트) (0) | 2022.01.03 |
[Kubernetes] Pod(기본 오브젝트) (0) | 2022.01.03 |
쿠버네티스 소개 (0) | 2021.12.28 |
AWS, Docker를 이용한 간단한 웹사이트(2)-AWS 작업 (0) | 2021.09.09 |
댓글