Container: - Dockerfile → Containerfile; drop gosu, entrypoint, PUID/PGID user-switching - HOME=/config so Path.home()/.aws resolves to runtime-mounted credentials - docker-compose.yml → compose.yml with userns_mode: keep-id for Podman rootless - .dockerignore → .containerignore - boto3 unpinned from 1.34.0 to >=1.34.0 CI: - Remove Woodpecker (.woodpecker.yml, .woodpecker/) - Add Forgejo Actions (.forgejo/workflows/ci.yml, publish.yml) - CI: syntax check, security scan, container lint (hadolint), build test - Publish: build and push to Quay.io on main push and version tags Cleanup: - Remove entrypoint.sh (no longer needed) - Remove scripts/build-and-push.sh and PUBLISHING.md (superseded by CI) - All docker → podman command references updated Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
548 B
Docker
24 lines
548 B
Docker
FROM python:3.11-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Install Python dependencies
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copy application files
|
|
COPY . .
|
|
|
|
# Create mount point for AWS credentials and data directory
|
|
RUN mkdir -p /config /app/data
|
|
|
|
EXPOSE 5000
|
|
|
|
# HOME=/config means Path.home() resolves to /config at runtime.
|
|
# Mount your AWS credentials to /config/.aws at runtime — nothing sensitive is baked in.
|
|
ENV FLASK_APP=app.py \
|
|
PYTHONUNBUFFERED=1 \
|
|
DEBUG=false \
|
|
HOME=/config
|
|
|
|
CMD ["python", "app.py"]
|