111 lines
3.4 KiB
Docker
111 lines
3.4 KiB
Docker
# focal amd64 as of 2020-03-10
|
|
FROM ubuntu@sha256:d050ed7278c16ff627e4a70d7d353f1a2ec74d8a0b66e5a865356d92f5f6d87b
|
|
|
|
################################################################################
|
|
## Mirror Setup
|
|
## - option to use local mirror to speed build
|
|
################################################################################
|
|
ARG UBUNTU_MIRROR=http://archive.ubuntu.com/ubuntu
|
|
RUN echo "deb $UBUNTU_MIRROR focal main universe restricted multiverse" > \
|
|
/etc/apt/sources.list.new && \
|
|
echo "deb $UBUNTU_MIRROR focal-updates main universe restricted multiverse" >> \
|
|
/etc/apt/sources.list.new && \
|
|
echo "deb $UBUNTU_MIRROR focal-security main universe restricted multiverse" >> \
|
|
/etc/apt/sources.list.new && \
|
|
echo "deb $UBUNTU_MIRROR focal-backports main universe restricted multiverse" >> \
|
|
/etc/apt/sources.list.new && \
|
|
mv /etc/apt/sources.list.new /etc/apt/sources.list
|
|
|
|
|
|
ARG UID=61000
|
|
ARG GID=61000
|
|
|
|
RUN groupadd \
|
|
--system --gid $GID \
|
|
app && \
|
|
useradd \
|
|
--system --gid $GID --uid $UID \
|
|
--no-log-init -m -s /bin/false --home-dir /home/app \
|
|
app
|
|
|
|
################################################################################
|
|
## Versions
|
|
################################################################################
|
|
# master as of 2020-03-10
|
|
ARG PYENV_COMMIT=df9fa1dc30b6448ef8605e2c2d4dfc2a94d6a35d
|
|
ARG PYTHON_VERSION=3.8.1
|
|
|
|
################################################################################
|
|
## Packages
|
|
################################################################################
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
RUN apt update && \
|
|
apt upgrade -y && \
|
|
apt install -y \
|
|
build-essential \
|
|
curl \
|
|
git \
|
|
libbz2-dev \
|
|
libffi-dev \
|
|
liblzma-dev \
|
|
libncurses5-dev \
|
|
libncursesw5-dev \
|
|
libreadline-dev \
|
|
libsqlite3-dev \
|
|
libssl-dev \
|
|
llvm \
|
|
locales \
|
|
locales \
|
|
make \
|
|
python-openssl \
|
|
tk-dev \
|
|
wget \
|
|
xz-utils \
|
|
zlib1g-dev \
|
|
&& \
|
|
echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && \
|
|
dpkg-reconfigure --frontend=noninteractive locales && \
|
|
update-locale LANG=en_US.UTF-8 && \
|
|
mkdir -p /var/app && \
|
|
chown app:app /var/app
|
|
|
|
|
|
ENV LANG en_US.UTF-8
|
|
|
|
USER app
|
|
WORKDIR /home/app
|
|
ENV HOME /home/app
|
|
|
|
RUN git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv && \
|
|
cd $HOME/.pyenv && \
|
|
git checkout $PYENV_COMMIT
|
|
|
|
ENV PYENV_ROOT $HOME/.pyenv
|
|
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
|
|
|
|
################################################################################
|
|
## Python
|
|
################################################################################
|
|
RUN pyenv install $PYTHON_VERSION && \
|
|
pyenv global $PYTHON_VERSION && \
|
|
pyenv rehash && \
|
|
pip install --upgrade pip && \
|
|
pip install pipenv
|
|
|
|
|
|
################################################################################
|
|
## Install App Deps
|
|
################################################################################j
|
|
WORKDIR /var/app
|
|
COPY ./Pipfile ./Pipfile.lock /var/app/
|
|
RUN pipenv install --python $PYENV_ROOT/shims/python
|
|
|
|
################################################################################
|
|
## Install App
|
|
################################################################################
|
|
COPY . /var/app
|
|
|
|
VOLUME /data
|
|
|
|
CMD ['pipenv', 'run', 'bin/tvidd']
|