-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
37 lines (28 loc) · 1015 Bytes
/
Dockerfile
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
FROM python:3.10.4-alpine
# Set environment varibles
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ARG PROJECT_NAME=kerani
ARG USERNAME=$PROJECT_NAME
ARG GROUP=$PROJECT_NAME
ARG CODE_DIR=/$PROJECT_NAME
RUN apk update && \
apk add sudo && \
apk add bash && \
apk add --virtual .build-deps gcc musl-dev libffi-dev binutils libc-dev curl && \
apk add python3-dev zlib-dev && \
apk add build-base
RUN addgroup -g 1000 -S $GROUP \
&& adduser -D --uid 1000 -S -G $USERNAME $GROUP \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& mkdir -p $CODE_DIR \
&& chmod 0440 /etc/sudoers.d/$USERNAME \
&& chown -R $USERNAME:$GROUP $CODE_DIR
WORKDIR $CODE_DIR
# Install dependencies
COPY --chown=$USERNAME:$GROUP requirements.txt requirements-dev.txt $CODE_DIR/
RUN pip install pip-tools
RUN pip-sync requirements.txt requirements-dev.txt
RUN apk --purge del .build-deps
USER $USERNAME
COPY --chown=$USERNAME:$GROUP . $CODE_DIR