Spaces:
Sleeping
Sleeping
Commit
·
c2f6a7b
1
Parent(s):
aae91f6
huh
Browse files- Dockerfile +7 -60
Dockerfile
CHANGED
@@ -52,70 +52,17 @@ RUN --mount=type=secret,id=HOST,required=true \
|
|
52 |
--mount=type=secret,id=WORKER_TOKEN,required=true \
|
53 |
--mount=type=secret,id=CLOUDFLARE_TURNSTILE_SECRET,required=true \
|
54 |
--mount=type=secret,id=REDIS_URL,required=true \
|
55 |
-
bash -c '
|
56 |
-
ARG PYTHON_VERSION=3.12-slim-bullseye
|
57 |
-
|
58 |
-
FROM python:${PYTHON_VERSION}
|
59 |
-
|
60 |
-
ENV PYTHONDONTWRITEBYTECODE 1
|
61 |
-
ENV PYTHONUNBUFFERED 1
|
62 |
-
|
63 |
-
# Install dependencies
|
64 |
-
RUN apt-get update && apt-get install -y \
|
65 |
-
libpq-dev \
|
66 |
-
gcc \
|
67 |
-
g++ \
|
68 |
-
wget \
|
69 |
-
unzip \
|
70 |
-
xvfb \
|
71 |
-
libxi6 \
|
72 |
-
libgconf-2-4 \
|
73 |
-
gnupg \
|
74 |
-
curl \
|
75 |
-
&& rm -rf /var/lib/apt/lists/*
|
76 |
-
|
77 |
-
# Install Chrome
|
78 |
-
RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \
|
79 |
-
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list \
|
80 |
-
&& apt-get update \
|
81 |
-
&& apt-get install -y google-chrome-stable
|
82 |
|
83 |
-
# Install ChromeDriver
|
84 |
-
RUN CHROMEDRIVER_VERSION=$(curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE) \
|
85 |
-
&& wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip \
|
86 |
-
&& unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/
|
87 |
-
|
88 |
-
RUN useradd -m -u 1000 user
|
89 |
-
USER user
|
90 |
-
ENV PATH="/home/user/.local/bin:$PATH"
|
91 |
-
|
92 |
-
# Install Python dependencies
|
93 |
-
COPY --chown=user requirements.txt /tmp/requirements.txt
|
94 |
-
RUN pip install --no-cache-dir --upgrade pip \
|
95 |
-
&& pip install --no-cache-dir -r /tmp/requirements.txt
|
96 |
-
|
97 |
-
# Copy application code
|
98 |
-
COPY --chown=user . /code
|
99 |
-
WORKDIR /code
|
100 |
-
|
101 |
-
USER root
|
102 |
-
# Use secrets during build
|
103 |
-
RUN --mount=type=secret,id=HOST,required=true \
|
104 |
-
--mount=type=secret,id=DJANGO_SECRET,required=true \
|
105 |
-
--mount=type=secret,id=SECURE_TOKEN,required=true \
|
106 |
-
--mount=type=secret,id=WORKER_TOKEN,required=true \
|
107 |
-
--mount=type=secret,id=CLOUDFLARE_TURNSTILE_SECRET,required=true \
|
108 |
-
--mount=type=secret,id=REDIS_URL,required=true
|
109 |
RUN chown -R user:user /run/secrets
|
110 |
-
|
111 |
USER user
|
112 |
|
113 |
-
RUN bash -c 'export HOST=$(cat /
|
114 |
-
export DJANGO_SECRET=$(cat /
|
115 |
-
export SECURE_TOKEN=$(cat /
|
116 |
-
export WORKER_TOKEN=$(cat /
|
117 |
-
export CLOUDFLARE_TURNSTILE_SECRET=$(cat /
|
118 |
-
export REDIS_URL=$(cat /
|
119 |
python manage.py makemigrations && \
|
120 |
python manage.py migrate --database=default && \
|
121 |
python manage.py migrate --database=cache && \
|
|
|
52 |
--mount=type=secret,id=WORKER_TOKEN,required=true \
|
53 |
--mount=type=secret,id=CLOUDFLARE_TURNSTILE_SECRET,required=true \
|
54 |
--mount=type=secret,id=REDIS_URL,required=true \
|
55 |
+
bash -c 'cp -r /run/secrets/* /secrets'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
RUN chown -R user:user /run/secrets
|
|
|
58 |
USER user
|
59 |
|
60 |
+
RUN bash -c 'export HOST=$(cat /secrets/HOST) && \
|
61 |
+
export DJANGO_SECRET=$(cat /secrets/DJANGO_SECRET) && \
|
62 |
+
export SECURE_TOKEN=$(cat /secrets/SECURE_TOKEN) && \
|
63 |
+
export WORKER_TOKEN=$(cat /secrets/WORKER_TOKEN) && \
|
64 |
+
export CLOUDFLARE_TURNSTILE_SECRET=$(cat /secrets/CLOUDFLARE_TURNSTILE_SECRET) && \
|
65 |
+
export REDIS_URL=$(cat /secrets/REDIS_URL) && \
|
66 |
python manage.py makemigrations && \
|
67 |
python manage.py migrate --database=default && \
|
68 |
python manage.py migrate --database=cache && \
|