[#13] feat: docker compose로 로컬에서 nginx, app 연동

- docker profile을 통한 local docker test 구성
- nginx 설정 구성
- local db 활용을 위한 docker network 구성
This commit is contained in:
beaniejoy
2022-08-21 18:31:55 +09:00
parent 4d759069b7
commit 747b5a7f3d
6 changed files with 92 additions and 10 deletions

View File

@@ -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

View File

@@ -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
name: api-net

View File

@@ -1,5 +0,0 @@
server {
listen 80;
listen [::]:80;
}

41
nginx/config/app.conf Normal file
View File

@@ -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;
#}
}

35
nginx/nginx.conf Normal file
View File

@@ -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/*;
}

View File

@@ -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 추후 보안에 대해 생각해보기