Skip to content

Refactor Docker CI workflow for improved structure #50

Refactor Docker CI workflow for improved structure

Refactor Docker CI workflow for improved structure #50

# Start from a Python base image

Check failure on line 1 in .github/workflows/docker-ci-ghcr.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/docker-ci-ghcr.yml

Invalid workflow file

(Line: 2, Col: 1): Unexpected value 'FROM python:3.10-slim'
FROM python:3.10-slim
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Install system dependencies
RUN apt-get update && apt-get install -y \
redis-server \
libmagic1 \
curl \
&& rm -rf /var/lib/apt/lists/*
# Create a non-root user and group
RUN addgroup --system omnipkg && adduser --system --ingroup omnipkg omnipkg
# Set the working directory
WORKDIR /home/omnipkg
# Copy project files (including src/) BEFORE installing
COPY --chown=omnipkg:omnipkg pyproject.toml poetry.lock* ./
COPY --chown=omnipkg:omnipkg src/ ./src/
COPY --chown=omnipkg:omnipkg README.md ./
# Install Python dependencies
RUN pip install --no-cache-dir .
# Copy the entrypoint script
COPY --chown=omnipkg:omnipkg docker-entrypoint.sh ./
RUN chmod +x /home/omnipkg/docker-entrypoint.sh
# Create directories for omnipkg data BEFORE switching user
RUN mkdir -p /home/omnipkg/.omnipkg && \
chown -R omnipkg:omnipkg /home/omnipkg
# NOW switch to non-root user
USER omnipkg
# Expose Redis port (in case external access needed)
EXPOSE 6379
# Expose the application port
EXPOSE 8000
# Specify the entrypoint script
ENTRYPOINT ["/home/omnipkg/docker-entrypoint.sh"]