generated from playground/template-python
Flask 배포용 Dockerfile·.gitignore 추가
- Dockerfile: python:3.12-slim 기반. requirements.txt를 먼저 설치해 레이어 캐시를 활용하고, 비루트(appuser)로 실행. 배포 규격대로 0.0.0.0:8080 포트 노출(EXPOSE 8080). sample/Dockerfile 구조를 파이썬 플라스크용으로 변환. - .gitignore: __pycache__·*.pyc, 가상환경(.venv 등), .env 등 파이썬/환경변수 산출물 제외.
This commit is contained in:
26
.gitignore
vendored
Normal file
26
.gitignore
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*.egg-info/
|
||||||
|
.eggs/
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# 가상환경
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
env/
|
||||||
|
|
||||||
|
# 환경변수(자격증명 포함) — 절대 커밋 금지
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
|
||||||
|
# 테스트/캐시
|
||||||
|
.pytest_cache/
|
||||||
|
.mypy_cache/
|
||||||
|
.coverage
|
||||||
|
htmlcov/
|
||||||
|
|
||||||
|
# OS / 에디터
|
||||||
|
.DS_Store
|
||||||
24
Dockerfile
Normal file
24
Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# 로컬(podman)과 Kubero 자동빌드가 공유하는 단일 Dockerfile.
|
||||||
|
# - 로컬: podman build -t maze-runner . && podman run --rm -p 8080:8080 maze-runner
|
||||||
|
# - 배포: git push → Kubero가 이 Dockerfile로 빌드/배포 (http://<앱이름>.apps.bokdev.in)
|
||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# 의존성 레이어 캐시
|
||||||
|
COPY requirements.txt ./
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
# 앱 소스
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
ENV PYTHONUNBUFFERED=1 \
|
||||||
|
PORT=8080
|
||||||
|
# 배포 규격: 0.0.0.0 의 8080 포트
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
# 비루트 실행
|
||||||
|
RUN useradd --create-home --uid 10001 appuser
|
||||||
|
USER appuser
|
||||||
|
|
||||||
|
CMD ["python", "main.py"]
|
||||||
Reference in New Issue
Block a user