|
|
|
FROM python:3.11-slim AS builder |
|
|
|
WORKDIR /app |
|
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \ |
|
wget \ |
|
unzip \ |
|
&& rm -rf /var/lib/apt/lists/* \ |
|
&& python -m venv /opt/venv |
|
|
|
|
|
ENV PATH="/opt/venv/bin:$PATH" |
|
|
|
|
|
COPY requirements.txt . |
|
RUN pip install --no-cache-dir -r requirements.txt |
|
|
|
|
|
RUN wget -O pocketbase.zip https://github.com/pocketbase/pocketbase/releases/download/v0.25.0/pocketbase_0.25.0_linux_amd64.zip \ |
|
&& unzip pocketbase.zip -d /app/ \ |
|
&& rm pocketbase.zip \ |
|
&& chmod +x /app/pocketbase |
|
|
|
|
|
FROM python:3.11-slim |
|
|
|
WORKDIR /app |
|
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \ |
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
COPY --from=builder /opt/venv /opt/venv |
|
|
|
|
|
ENV PATH="/opt/venv/bin:$PATH" \ |
|
FLASK_APP=app.py \ |
|
PYTHONUNBUFFERED=1 |
|
|
|
|
|
RUN mkdir -p /app/pocketbase \ |
|
&& mkdir -p /app/pocketbase/pb_public \ |
|
&& mkdir -p /app/pocketbase/pb_data |
|
|
|
|
|
COPY . . |
|
|
|
|
|
COPY --from=builder /app/pocketbase /usr/local/bin/pocketbase |
|
RUN chmod +x /usr/local/bin/pocketbase \ |
|
&& chmod -R 755 /app/pocketbase \ |
|
&& ls -la /usr/local/bin/pocketbase |
|
|
|
|
|
EXPOSE 5000 8090 |
|
|
|
|
|
RUN echo '#!/bin/sh\n\ |
|
echo "Current directory: $(pwd)"\n\ |
|
echo "Checking PocketBase binary:"\n\ |
|
which pocketbase\n\ |
|
cd /app/pocketbase && pocketbase serve --http="0.0.0.0:8090" &\n\ |
|
python3 /app/app.py' > /app/start.sh \ |
|
&& chmod +x /app/start.sh |
|
|
|
|
|
CMD ["/bin/sh", "/app/start.sh"] |
|
|