기록을 합시다.
[docker] docker-compose를 이용하여 mariadb+apache2+tomcat9 연동하기 본문
프로젝트 경로
+---dockerfile_apache2
| Dockerfile
| httpd-vhosts.conf
| httpd.conf
|
+---dockerfile_mariadb
| db_board.sql
| db_user.sql
| Dockerfile
|
+---dockerfile_tomcat9
| Board.war
| Dockerfile
| server.xml
|
+---etc
| Board.war
| index.html
| serverVersionView.jsp
|
\---miniboard_compose
docker-compose.yml
Apache2 Dockerfile 작성
FROM httpd
#귀찮으니 안에서 설정안 하기 위해서 conf 파일들을 아예 옮겨준다.
ADD httpd.conf /usr/local/apache2/conf
ADD httpd-vhosts.conf /usr/local/apache2/conf/extra
WORKDIR /usr/local/apache2
EXPOSE 80
conf 파일 내용 궁금하신 분들은 링크로
근데 일일이 수작업으로 conf 수정하실 분들은 ADD 명령어 빼시면 됩니다.
Tomcat9 Dockerfile 작성
#개인이 만든 톰캣9 이미지를 베이스 이미지로 설정
FROM clearpursuitdocker/tomcat9-jdk11-lite
ADD server.xml /usr/local/tomcat/conf
ADD Board.war /usr/local/tomcat/webapps
WORKDIR /usr/local/tomcat
EXPOSE 8080
MariaDB Dockerfile 작성
FROM mariadb
ENV TZ Asia/Seoul
ENV MYSQL_ROOT_PASSWORD=12345
ENV MYSQL_DATABASE=webdev
ENV ls -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo $TZ > /etc/timezone
ADD db_user.sql /docker-entrypoint-initdb.d/01_db_user.sql
ADD db_board.sql /docker-entrypoint-initdb.d/02_db_board.sql
WORKDIR /
EXPOSE 3306
+ db_user.sql(미리 유저 정의 및 권한 부여 하는 쿼리 작성)
use webdev;
create user "webmaster"@'%' identified by '12345';
grant all privileges on 'webdev' to "webmaster"@'%';
+ db_board.sql(미리 table 설정하는 쿼리 작성)
create table tbl_board(
seqno int auto_increment,
writer varchar(50) not null,
title varchar(2000) not null,
regdate timestamp not null default current_timestamp(),
hitno int null,
content text not null,
primary key(seqno)
);
docker-compose.yml 작성
version: "1.0"
services:
apache2:
build: ..\dockerfile_apache2
networks:
myboard:
ipv4_address: 172.20.0.2
restart: always
environment:
- VIRTUAL_HOST=www.miniboard.com
ports:
- "80:80"
tomcat9:
build: ..\dockerfile_tomcat9
networks:
myboard:
ipv4_address: 172.20.0.3
restart: always
environment:
- VIRTUAL_HOST=www.miniboard.com
ports:
- "8080:8080"
mariadb:
build: ..\dockerfile_mariadb
networks:
myboard:
ipv4_address: 172.20.0.4
restart: always
ports:
- "3307:3306"
networks:
myboard:
driver: bridge
ipam:
driver: default
config:
- subnet: "172.20.0.0/24"
gateway: "172.20.0.1"
'공부 > etc' 카테고리의 다른 글
[Github Action] ./gradlew: Permission denied 에러 해결 (0) | 2023.06.25 |
---|---|
[NCP] 네이버 클라우드에서 MySQL 서버 구축하기 (0) | 2023.06.23 |
HTTP, Session, Cookie 정리 (0) | 2023.05.20 |
Hyper-V Ubuntu 디스크 용량 늘리기 (0) | 2023.04.21 |
[docker] Mount 명령어를 이용해 컨테이너끼리 폴더 공유 하기(feat. Apache, Tomcat) (0) | 2023.04.21 |
Comments