-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile-jobs
64 lines (46 loc) · 1.84 KB
/
Dockerfile-jobs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
FROM python:3.12-slim-bullseye
ENV PYTHONUNBUFFERED 1
RUN apt-get update && apt-get install -y \
dos2unix \
gcc \
git \
libpq-dev \
libsqlite3-dev \
procps \
python3-dev \
tmux \
&& rm -rf /var/lib/apt/lists/*
RUN echo "net.ipv4.ping_group_range=0 2147483647" > /etc/sysctl.d/local.conf
# Created by deploy script.
COPY requirements-jobs.txt requirements-jobs.txt
# Remove psycopg to install optimized local build later.
RUN awk '!/psycopg/' requirements-jobs.txt > tmpfile && mv tmpfile requirements-jobs.txt
RUN pip install --upgrade pip --no-cache-dir
RUN pip install -r requirements-jobs.txt --no-cache-dir
# Install psycopg3 optimized local build.
RUN pip install psycopg[c] --no-cache-dir
ARG OVERMIND_VERSION="v2.5.1"
ARG OVERMIND_URL="https://github.com/DarthSim/overmind/releases/download/${OVERMIND_VERSION}/overmind-${OVERMIND_VERSION}-linux-amd64.gz"
ARG OVERMIND_SHA256="a17159b8e97d13f3679a4e8fbc9d4747f82d5af9f6d32597b72821378b5d0b6f"
ADD ${OVERMIND_URL} ./
RUN echo "${OVERMIND_SHA256} ./overmind-${OVERMIND_VERSION}-linux-amd64.gz" \
| sha256sum --check --status
RUN gzip -fd ./overmind-${OVERMIND_VERSION}-linux-amd64.gz
RUN mv ./overmind-${OVERMIND_VERSION}-linux-amd64 ./overmind
RUN chmod +x ./overmind
RUN mv ./overmind /usr/local/bin/
ARG USERNAME=overmind_user
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME
RUN chown -R overmind_user /home/overmind_user/
# USER overmind_user
# NOTE: need to run entrypoint as root to set kernel opts!
WORKDIR /home/overmind_user/
# TODO: explicit copy instead of just copying all?
COPY --chown=overmind_user:overmind_user ./ /home/overmind_user/
RUN dos2unix ./*
EXPOSE 8080
ENTRYPOINT ["bash", "run-jobs.sh"]
# TODO: use fly machine run to set kernel params persistently?