나의 사이트 수정
This commit is contained in:
52
docker-compose.yml
Normal file
52
docker-compose.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
# 리눅스 서버에서 한 번에 띄우기.
|
||||
#
|
||||
# cp .env.example .env # 값 채우고
|
||||
# docker compose up -d --build
|
||||
#
|
||||
# 다시 배포할 때:
|
||||
# git pull && docker compose up -d --build
|
||||
#
|
||||
# 업로드 폴더는 호스트의 ./uploads 로 빼 두었다.
|
||||
# 컨테이너를 지우고 다시 만들어도 올려 둔 사진은 그대로 남는다.
|
||||
|
||||
services:
|
||||
gameserver:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: genesis-gameserver:latest
|
||||
container_name: genesis
|
||||
restart: unless-stopped
|
||||
|
||||
ports:
|
||||
# 호스트 5281 → 컨테이너 8080
|
||||
# 앞에 nginx 같은 리버스 프록시를 둔다면 "127.0.0.1:5281:8080" 으로 묶어
|
||||
# 외부에서 직접 접근하지 못하게 하는 편이 낫다.
|
||||
- "5281:8080"
|
||||
|
||||
environment:
|
||||
ASPNETCORE_ENVIRONMENT: Production
|
||||
# 환경변수가 appsettings.json 보다 우선한다. 비밀값은 여기(.env)로만 넣는다.
|
||||
ConnectionStrings__DefaultConnection: ${DB_CONNECTION}
|
||||
Portfolio__AdminPassword: ${ADMIN_PASSWORD}
|
||||
Portfolio__MaxUploadBytes: ${MAX_UPLOAD_BYTES:-104857600}
|
||||
|
||||
volumes:
|
||||
# 업로드된 사진. 이게 없으면 재배포 때 전부 사라진다.
|
||||
# 호스트 폴더 소유자를 컨테이너의 app 사용자(UID 1654)로 맞춰야 쓰기가 된다:
|
||||
# mkdir -p uploads && sudo chown -R 1654:1654 uploads
|
||||
- ./uploads:/app/wwwroot/uploads
|
||||
|
||||
healthcheck:
|
||||
# 포트폴리오 공개 API 가 응답하면 정상으로 본다.
|
||||
test: ["CMD-SHELL", "wget -qO- http://localhost:8080/api/portfolio/categories >/dev/null 2>&1 || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
Reference in New Issue
Block a user