tvid is a redirection manager for televisions, lobby displays, status dashboards, and the like, so that you can set all of the displays in your organization to one URL and manage them via the web.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
3.4KB

  1. # focal amd64 as of 2020-03-10
  2. FROM ubuntu@sha256:d050ed7278c16ff627e4a70d7d353f1a2ec74d8a0b66e5a865356d92f5f6d87b
  3. ################################################################################
  4. ## Mirror Setup
  5. ## - option to use local mirror to speed build
  6. ################################################################################
  7. ARG UBUNTU_MIRROR=http://archive.ubuntu.com/ubuntu
  8. RUN echo "deb $UBUNTU_MIRROR focal main universe restricted multiverse" > \
  9. /etc/apt/sources.list.new && \
  10. echo "deb $UBUNTU_MIRROR focal-updates main universe restricted multiverse" >> \
  11. /etc/apt/sources.list.new && \
  12. echo "deb $UBUNTU_MIRROR focal-security main universe restricted multiverse" >> \
  13. /etc/apt/sources.list.new && \
  14. echo "deb $UBUNTU_MIRROR focal-backports main universe restricted multiverse" >> \
  15. /etc/apt/sources.list.new && \
  16. mv /etc/apt/sources.list.new /etc/apt/sources.list
  17. ARG UID=61000
  18. ARG GID=61000
  19. RUN groupadd \
  20. --system --gid $GID \
  21. app && \
  22. useradd \
  23. --system --gid $GID --uid $UID \
  24. --no-log-init -m -s /bin/false --home-dir /home/app \
  25. app
  26. ################################################################################
  27. ## Versions
  28. ################################################################################
  29. # master as of 2020-03-10
  30. ARG PYENV_COMMIT=df9fa1dc30b6448ef8605e2c2d4dfc2a94d6a35d
  31. ARG PYTHON_VERSION=3.8.1
  32. ################################################################################
  33. ## Packages
  34. ################################################################################
  35. ARG DEBIAN_FRONTEND=noninteractive
  36. RUN apt update && \
  37. apt upgrade -y && \
  38. apt install -y \
  39. build-essential \
  40. curl \
  41. git \
  42. libbz2-dev \
  43. libffi-dev \
  44. liblzma-dev \
  45. libncurses5-dev \
  46. libncursesw5-dev \
  47. libreadline-dev \
  48. libsqlite3-dev \
  49. libssl-dev \
  50. llvm \
  51. locales \
  52. locales \
  53. make \
  54. python-openssl \
  55. tk-dev \
  56. wget \
  57. xz-utils \
  58. zlib1g-dev \
  59. && \
  60. echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && \
  61. dpkg-reconfigure --frontend=noninteractive locales && \
  62. update-locale LANG=en_US.UTF-8 && \
  63. mkdir -p /var/app && \
  64. chown app:app /var/app
  65. ENV LANG en_US.UTF-8
  66. USER app
  67. WORKDIR /home/app
  68. ENV HOME /home/app
  69. RUN git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv && \
  70. cd $HOME/.pyenv && \
  71. git checkout $PYENV_COMMIT
  72. ENV PYENV_ROOT $HOME/.pyenv
  73. ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
  74. ################################################################################
  75. ## Python
  76. ################################################################################
  77. RUN pyenv install $PYTHON_VERSION && \
  78. pyenv global $PYTHON_VERSION && \
  79. pyenv rehash && \
  80. pip install --upgrade pip && \
  81. pip install pipenv
  82. ################################################################################
  83. ## Install App Deps
  84. ################################################################################j
  85. WORKDIR /var/app
  86. COPY ./Pipfile ./Pipfile.lock /var/app/
  87. RUN pipenv install --python $PYENV_ROOT/shims/python
  88. ################################################################################
  89. ## Install App
  90. ################################################################################
  91. COPY . /var/app
  92. VOLUME /data
  93. ENV PYTHONPATH /var/app
  94. CMD pipenv run python ./bin/tvidd