-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
41 lines (35 loc) · 1.64 KB
/
Dockerfile
File metadata and controls
41 lines (35 loc) · 1.64 KB
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
ARG TAG=3.10-slim
FROM python:${TAG}
ARG CONTAINER_USER="python"
ARG LANGUAGE_CODE="en"
ARG COUNTRY_CODE="GB"
ARG ENCODING="UTF-8"
ARG LOCALE_STRING="${LANGUAGE_CODE}_${COUNTRY_CODE}"
ARG LOCALIZATION="${LOCALE_STRING}.${ENCODING}"
ARG OH_MY_ZSH_THEME="bira"
RUN apt-get update && apt-get -y upgrade && \
apt-get -y install --no-install-recommends \
locales git curl inotify-tools zsh && \
echo "${LOCALIZATION} ${ENCODING}" > /etc/locale.gen && \
locale-gen "${LOCALIZATION}" && \
useradd -m -u 1000 -s /usr/bin/zsh "${CONTAINER_USER}" && \
CHSH=no RUNZSH=no KEEP_ZSHRC=yes sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" && \
cp -v /root/.zshrc /home/${CONTAINER_USER}/.zshrc && \
cp -rv /root/.oh-my-zsh /home/${CONTAINER_USER}/.oh-my-zsh && \
sed -i "s#/root#/home/${CONTAINER_USER}#g" /home/${CONTAINER_USER}/.zshrc && \
sed -i s/ZSH_THEME=\"robbyrussell\"/ZSH_THEME=\"${OH_MY_ZSH_THEME}\"/g /home/${CONTAINER_USER}/.zshrc && \
mkdir -p /home/${CONTAINER_USER}/workspace && \
chown -R ${CONTAINER_USER}:${CONTAINER_USER} /home/${CONTAINER_USER}
USER ${CONTAINER_USER}
ENV USER=${CONTAINER_USER}
ENV LANG=${LOCALIZATION}
ENV LANGUAGE=${LOCALE_STRING}:${LANGUAGE_CODE}
ENV PATH=/home/${CONTAINER_USER}/.local/bin:${PATH}
ENV LC_ALL=${LOCALIZATION}
# work in the same place you mount in compose
WORKDIR /home/${CONTAINER_USER}/workspace
# install deps; we only copy requirements, code is bind-mounted
ADD ./server/requirements.txt /tmp/requirements.txt
RUN pip3 install --no-cache-dir -r /tmp/requirements.txt && \
pip3 install --no-cache-dir virtualenv
CMD ["zsh"]