[feat] add docker
This commit is contained in:
parent
67bdc287e9
commit
0829ad6c12
2 changed files with 67 additions and 0 deletions
35
Dockerfile
Normal file
35
Dockerfile
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
FROM python:3.13-slim AS build
|
||||
|
||||
ENV UV_LINK_MODE=copy
|
||||
WORKDIR /app
|
||||
|
||||
RUN python -m pip install --no-cache-dir uv
|
||||
|
||||
COPY pyproject.toml uv.lock ./
|
||||
RUN uv sync --locked --no-dev --no-install-project
|
||||
|
||||
|
||||
FROM python:3.13-slim AS run
|
||||
|
||||
ENV PATH="/app/.venv/bin:${PATH}" \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
PYTHONUNBUFFERED=1 \
|
||||
VIRTUAL_ENV=/app/.venv
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN useradd --system --create-home --shell /usr/sbin/nologin appuser
|
||||
|
||||
COPY --from=build --chown=appuser:appuser /app/.venv /app/.venv
|
||||
COPY --chown=appuser:appuser adapter /app/adapter
|
||||
COPY --chown=appuser:appuser config /app/config
|
||||
COPY --chown=appuser:appuser domain /app/domain
|
||||
COPY --chown=appuser:appuser repository /app/repository
|
||||
COPY --chown=appuser:appuser usecase /app/usecase
|
||||
COPY --chown=appuser:appuser main.py /app/main.py
|
||||
|
||||
USER appuser
|
||||
|
||||
EXPOSE 8123
|
||||
|
||||
CMD ["python", "main.py"]
|
||||
32
docker-compose.yml
Normal file
32
docker-compose.yml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
services:
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
target: run
|
||||
depends_on:
|
||||
- otel-collector
|
||||
environment:
|
||||
APP_API_TOKEN: ${APP_API_TOKEN:?APP_API_TOKEN is required}
|
||||
APP_SIGNING_KEY: ${APP_SIGNING_KEY:?APP_SIGNING_KEY is required}
|
||||
APP_ENV: docker
|
||||
APP_HTTP_HOST: 0.0.0.0
|
||||
APP_HTTP_PORT: '8123'
|
||||
APP_LOGGING_OUTPUT: otel
|
||||
APP_METRICS_ENABLED: 'true'
|
||||
APP_TRACING_ENABLED: 'true'
|
||||
APP_OTEL_LOGS_ENDPOINT: http://otel-collector:4318/v1/logs
|
||||
APP_OTEL_METRICS_ENDPOINT: http://otel-collector:4318/v1/metrics
|
||||
APP_OTEL_TRACES_ENDPOINT: http://otel-collector:4318/v1/traces
|
||||
ports:
|
||||
- '127.0.0.1:8123:8123'
|
||||
|
||||
otel-collector:
|
||||
image: grafana/otel-lgtm:latest
|
||||
ports:
|
||||
- '127.0.0.1:3000:3000'
|
||||
volumes:
|
||||
- lgtm-data:/data
|
||||
|
||||
volumes:
|
||||
lgtm-data:
|
||||
Loading…
Add table
Add a link
Reference in a new issue