Skip to content

Commit

Permalink
chore: traefikでリバースプロキシ切り出そうとしたけどつまりかけてる
Browse files Browse the repository at this point in the history
  • Loading branch information
calloc134 committed Oct 28, 2023
1 parent 92de327 commit 9e131f2
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 142 deletions.
66 changes: 43 additions & 23 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,18 @@ version: "3.8"
# ネットワークの作成
networks:
# 内部ネットワーク
# バックエンドとlogtoコンテナ、リバースプロキシのみ接続
app-ins-network:
# バックエンドとそれに対応するデータベース、minioのみ接続
# バックエンドとlogtoコンテナのみ接続
app-logto-network:
# バックエンドとそれに対応するデータベースのみ接続
app-db-network:
# バックエンドとminioのみ接続
app-minio-network:
# logtoとそれに対応するデータベースのみ接続
logto-db-network:
# リバースプロキシで公開するネットワーク
traefik-public:
# リバースプロキシのネットワークを外部に公開
external: true

# データベースのデータを格納するボリューム
volumes:
Expand Down Expand Up @@ -55,7 +61,8 @@ services:
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
networks:
- app-db-network
- app-minio-network
- traefik-public

# logto用のデータベース
db-logto:
Expand Down Expand Up @@ -87,8 +94,9 @@ services:
- ADMIN_ENDPOINT=${LOGTO_ADMIN_ENDPOINT}
# 内部ネットワークに接続
networks:
app-ins-network:
logto-db-network:
- app-logto-network
- logto-db-network
- traefik-public

backend:
container_name: backend-prod
Expand Down Expand Up @@ -122,22 +130,15 @@ services:
- NODE_ENV=production
# 内部ネットワークに接続
networks:
- app-ins-network
- app-logto-network
- app-db-network
- app-minio-network
- traefik-public
# コンテナが停止したら再起動
restart: on-failure

frontend:
container_name: frontend-prod
ports:
# 80ポートを開放
# - target: 80
# published: 80
# host_ip: localhost
# 443ポートを開放
- target: 443
published: 443
host_ip: localhost
build:
context: .
# フロントエンドのDockerfileを指定
Expand All @@ -161,17 +162,36 @@ services:
VITE_HOSTNAME: ${HOSTNAME}
# インフラの環境変数を指定
INFRADIR: ${INFRADIR}
environment:
# ホストネームを指定
- HOSTNAME=${HOSTNAME}
networks:
- traefik-public
# コンテナが停止したら再起動
restart: on-failure
depends_on:
- backend

# リバースプロキシコンテナ
traefik:
container_name: traefik
# traefikの最新イメージを使用
image: traefik:latest
# traefikの環境変数を読み込む
labels:
# TODO
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
read_only: true
- type: bind
source: /etc/letsencrypt
target: /etc/letsencrypt
# 内部ネットワークに接続
# traefikの設定ファイルを指定
# ポートを指定
ports:
- "80:80"
- "443:443"
# ネットワークに接続
networks:
- app-ins-network
- traefik-public
# コンテナが停止したら再起動
restart: on-failure
depends_on:
- backend
4 changes: 3 additions & 1 deletion env_files/prod.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,6 @@ SCHEMA_PATH=/home/graphql/schemas/*.graphql
# OPERATION_PATH=/home/graphql/operations/*.graphql

# ホストネームを指定
HOSTNAME="dummy"
HOSTNAME="dummy"
# メールを指定
CERTBOT_EMAIL="dummy@dummy"
2 changes: 0 additions & 2 deletions packages/infra/Dockerfiles/Frontend-Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,6 @@ FROM nginx:latest as production-stage

# nginx構成ファイルのディレクトリ
ARG INFRADIR=packages/infra
# ホスト名(このホストでnginxを構成)
ARG HOSTNAME="dummy.dummy"

# データを引き継ぐ
COPY --from=build-stage /home/dist /usr/share/nginx/dist
Expand Down
28 changes: 28 additions & 0 deletions packages/infra/config/nginx-prod/default.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# メインサーバの設定
server {

# 80ポートでlistenする
# listen 80;
# ホスト名
# 環境変数で指定した値を使用する
server_name frontend;

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

# ルートディレクトリ
# ここではフロントエンドのビルドファイルを配置する
location / {
root /usr/share/nginx/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}


}
116 changes: 0 additions & 116 deletions packages/infra/config/nginx-prod/default.conf.template

This file was deleted.

0 comments on commit 9e131f2

Please sign in to comment.