From a36015da2640a4cd8b9d4aec287f930af1e37a85 Mon Sep 17 00:00:00 2001 From: LEE SEUNGEUN Date: Thu, 4 Feb 2021 15:58:16 +0000 Subject: [PATCH 1/5] BE-00005 add README --- docker/README.md | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docker/README.md diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..b465470 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,66 @@ +# 도커를 이용해 로컬 환경에서 데이터베이스 설정하기 +1. `cd {project-root}/project-meat-chatbot-be/docker` 명령어를 실행해 `Dockerfile`이 위치한 경로로 이동합니다. +2. `docker build -t {repository}:1.0.0 -t {repository}:latest --build-arg PASSWORD={passowrd} .` 명령어를 이용해 이미지를 빌드합니다. + + + + + + + + + + + + + + + + + + + + + +
인자 및 옵션설명
[인자] Dockerfile이 위치한 경로필수 인자로 위 명령어의 .입니다.
[옵션] -t + 이미지의 태그를 지정합니다. e.g. projectmeatdb
+ docker images 명령어를 통해 확인할 수 있습니다.
+ 여러 번을 사용해 한 번에 여러 개의 태그를 설정할 수 있습니다.
+ :latest를 사용할 경우 {repository}만으로도 사용할 수 있습니다. +
[옵션] --build-arg{argument-name}={argument-value} 형식으로 Dockerfile의 ARG를 오버라이딩합니다.
+3. `docker images`로 이미지 빌드 여부를 확인합니다. +4. 3번으로 image가 정상적으로 빌드된 것을 확인하면, `docker run -p {local-port}:3306 --name {container-name} -d {repository:tag}` 명령어를 실행해 컨테이너를 생성합니다. + + + + + + + + + + + + + + + + + + + + + + + + + +
인자 및 옵션설명
[인자] 이미지 + 컨테이너를 생성할 이미지명을 지정해줍니다
+ 2번에서 예시와 같이 projectmeatdb라고 명명하고, 1.0.0과 latest 태그를 설정했다면,
+ projectmeatdb 또는 projectmeatdb:1.0.0을 기입하면 됩니다. +
[옵션] -p + 로컬의 포트를 포워딩해주는 옵션입니다.
+ : 뒷 부분은 컨테이너의 포트인데, Dockerfile에 EXPOSE를 통해 지정되어 있습니다. +
[옵션] --name컨테이너 이름을 지정해주는 옵션입니다.
[옵션] -d백그라운드로 컨테이너를 실행하는 명령어입니다.
+5. `docker ps`를 통해 컨테이너 실행 여부를 확인할 수 있습니다. \ No newline at end of file From 5bdab53d73cb13db0e55aed3e11dd0bddce7859d Mon Sep 17 00:00:00 2001 From: LEE SEUNGEUN Date: Thu, 4 Feb 2021 15:58:48 +0000 Subject: [PATCH 2/5] BE-00005 add Dockerfile --- docker/Dockerfile | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docker/Dockerfile diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..544ecb7 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,8 @@ +FROM mariadb:10.5.8 +ARG PASSWORD +ENV MYSQL_ROOT_PASSWORD=$PASSWORD \ + MYSQL_DATABASE=project_meat_chatbot \ + MYSQL_USER=project_meat \ + MYSQL_PASSWORD=$PASSWORD +EXPOSE 3306 +ADD scripts/initialize_db.sql /docker-entrypoint-initdb.d From c9b891aa8c90d6bef71ddbf27bc1e2df9dd5c169 Mon Sep 17 00:00:00 2001 From: LEE SEUNGEUN Date: Thu, 4 Feb 2021 15:59:11 +0000 Subject: [PATCH 3/5] BE-00005 add scripts --- docker/scripts/initialize_db.sql | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docker/scripts/initialize_db.sql diff --git a/docker/scripts/initialize_db.sql b/docker/scripts/initialize_db.sql new file mode 100644 index 0000000..f44f847 --- /dev/null +++ b/docker/scripts/initialize_db.sql @@ -0,0 +1,7 @@ +USE project_meat_chatbot; +CREATE TABLE message ( + id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, + writer VARCHAR(50), + content LONGTEXT, + created_at TIMESTAMP +); \ No newline at end of file From 6274fff08d6a5e6be47a68ba042b146b9db76b91 Mon Sep 17 00:00:00 2001 From: LEE SEUNGEUN Date: Thu, 4 Feb 2021 16:02:03 +0000 Subject: [PATCH 4/5] BE-00005 add new line to scripts --- docker/scripts/initialize_db.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/scripts/initialize_db.sql b/docker/scripts/initialize_db.sql index f44f847..49f39af 100644 --- a/docker/scripts/initialize_db.sql +++ b/docker/scripts/initialize_db.sql @@ -4,4 +4,4 @@ CREATE TABLE message ( writer VARCHAR(50), content LONGTEXT, created_at TIMESTAMP -); \ No newline at end of file +); From 53b81d3c0df9373a5cd0fa36a3be583dd4afb40c Mon Sep 17 00:00:00 2001 From: LEE SEUNGEUN Date: Fri, 5 Feb 2021 12:44:01 +0000 Subject: [PATCH 5/5] BE-00005 add message created_at index --- docker/scripts/initialize_db.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/scripts/initialize_db.sql b/docker/scripts/initialize_db.sql index 49f39af..ad3b993 100644 --- a/docker/scripts/initialize_db.sql +++ b/docker/scripts/initialize_db.sql @@ -5,3 +5,4 @@ CREATE TABLE message ( content LONGTEXT, created_at TIMESTAMP ); +CREATE INDEX idx_message_created_at ON message (created_at);