From 747b5a7f3d7c551692702ced00f97a3ea0700262 Mon Sep 17 00:00:00 2001 From: beaniejoy Date: Sun, 21 Aug 2022 18:31:55 +0900 Subject: [PATCH] =?UTF-8?q?[#13]=20feat:=20docker=20compose=EB=A1=9C=20?= =?UTF-8?q?=EB=A1=9C=EC=BB=AC=EC=97=90=EC=84=9C=20nginx,=20app=20=EC=97=B0?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docker profile을 통한 local docker test 구성 - nginx 설정 구성 - local db 활용을 위한 docker network 구성 --- Dockerfile | 2 +- docker-compose.yml | 15 +++++++-- nginx/app.conf | 5 --- nginx/config/app.conf | 41 +++++++++++++++++++++++ nginx/nginx.conf | 35 +++++++++++++++++++ src/main/resources/application-docker.yml | 4 +-- 6 files changed, 92 insertions(+), 10 deletions(-) delete mode 100644 nginx/app.conf create mode 100644 nginx/config/app.conf create mode 100644 nginx/nginx.conf diff --git a/Dockerfile b/Dockerfile index b48c63a..6697449 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ COPY build.gradle $WORK_DIR COPY settings.gradle $WORK_DIR COPY gradle $WORK_DIR/gradle -RUN ./gradlew -x test build || return 0 +RUN ./gradlew test build || return 0 COPY src src diff --git a/docker-compose.yml b/docker-compose.yml index a672861..dd99441 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,15 @@ version: "3.9" services: - app-server: + nginx: + image: nginx + ports: + - "80:80" + volumes: + - "./nginx/nginx.conf:/etc/nginx/nginx.conf" + - "./nginx/config/:/etc/nginx/conf.d/" + depends_on: + - dongne-api + dongne-api: build: context: . dockerfile: Dockerfile @@ -8,7 +17,9 @@ services: - "8080:8080" env_file: - env/app.env + +# docker 환경에서 local db 활용하기 위한 설정 networks: default: external: - name: api-net \ No newline at end of file + name: api-net diff --git a/nginx/app.conf b/nginx/app.conf deleted file mode 100644 index 172e262..0000000 --- a/nginx/app.conf +++ /dev/null @@ -1,5 +0,0 @@ -server { - listen 80; - listen [::]:80; - -} \ No newline at end of file diff --git a/nginx/config/app.conf b/nginx/config/app.conf new file mode 100644 index 0000000..88122b1 --- /dev/null +++ b/nginx/config/app.conf @@ -0,0 +1,41 @@ +server { + listen 80; + server_name localhost; + + #access_log /var/log/nginx/host.access.log main; + + location / { + proxy_pass http://dongne-api:8080; + proxy_http_version 1.1; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-NginX-Proxy true; + + #client_max_body_size 256M; + #client_body_buffer_size 1m; + + #proxy_buffering on; + #proxy_buffers 256 16k; + #proxy_buffer_size 128k; + #proxy_busy_buffers_size 256k; + + #proxy_temp_file_write_size 256k; + #proxy_max_temp_file_size 1024m; + + #proxy_connect_timeout 300; + #proxy_send_timeout 300; + #proxy_read_timeout 300; + #proxy_intercept_errors on; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + #error_page 500 502 503 504 /50x.html; + #location = /50x.html { + # root /usr/share/nginx/html; + #} +} diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..d8becfc --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,35 @@ + +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + #server_names hash_bucke + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + #tcp_nodelay on; + + keepalive_timeout 65; + #types_hash_max_size 2048; + + #gzip on; + + include /etc/nginx/conf.d/*.conf; + #include /etc/nginx/sites-enabled/*; +} \ No newline at end of file diff --git a/src/main/resources/application-docker.yml b/src/main/resources/application-docker.yml index 329a30d..b3402cd 100644 --- a/src/main/resources/application-docker.yml +++ b/src/main/resources/application-docker.yml @@ -1,6 +1,6 @@ -# local 내 docker 테스트용도 +# local docker 환경 내 local db 활용 spring: datasource: url: jdbc:mysql://beanie-test-db:3306/dongne?autoreconnect=true&characterEncoding=utf8&serverTimezone=Asia/Seoul username: root - password: beaniejoy # TODO 추후 보안에 대해 생각해보기 + password: beaniejoy # TODO 추후 보안에 대해 생각해보기 \ No newline at end of file