-
Notifications
You must be signed in to change notification settings - Fork 7
/
Dockerfile.vscode
88 lines (65 loc) · 2.95 KB
/
Dockerfile.vscode
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# NOTE:
# This Dockerfile is for local development only!
# debian would match more closely what we have in production, and would probably be ideal,
# but it's also a pain working with because debian is so old.
FROM ubuntu:22.04
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID
# Tell r-base not to wait for interactive input.
ENV DEBIAN_FRONTEND=noninteractive
# Install dependancies needed by python developer packages
# One should really run all these installs and the update in one go - for a consistent install
# but ease of development trumps consistency in this instance: it's easer to have more
# faster running steps that can fail, that one big monster install that takes forever
# and fails.
# NOTE: Once we no longer need pyodbc, please remove the apt-get update and install commands below.
RUN apt-get -y update
RUN apt-get -y install unixodbc-dev
# Install old (2.4.*; current debian) version of gdal
RUN apt-get -y install libgdal-dev
# Dependency required for installation of cffdrs
RUN apt-get -y install libudunits2-dev
# Install R
RUN apt-get update --fix-missing && apt-get -y install r-base
# Install cffdrs
RUN R -e "install.packages('cffdrs')"
# Install some other dependancies
RUN apt-get -y install git build-essential python3 python3-dev python3-pip curl vim
# Install JDK
RUN apt-get -y install openjdk-11-jdk
# We could install poetry manually, but it's easier to use apt.
RUN apt-get -y install python3-poetry
# Poetry expects "python", but by default, on ubuntu, you need to specify "python3", so
# we work around that, by using the python3-poetry command.
RUN apt-get -y install python-is-python3
# I prefer zsh to bash
RUN apt-get -y install zsh
# from: https://code.visualstudio.com/remote/advancedcontainers/add-nonroot-user
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME
# RUN mkdir /vscode
# RUN chown vscode /vscode
USER $USERNAME
ENV PATH="/home/${USERNAME}/.local/bin:${PATH}"
WORKDIR /home/$USERNAME
# Update pip
RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install cachecontrol
# I like oh-my-zsh:
RUN sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# BUT - for some reason git+zsh == slowness, so tell git not to slow down zsh:
# git config --add oh-my-zsh.hide-dirty 1
# Copy poetry files.
# COPY pyproject.toml poetry.lock ./
# COPY --chown=worker:worker poetry.lock pyproject.toml ./
# RUN poetry install
# # We can't have this inside pyproject.toml because the gdal version differs from platform to platform.
# # To figure out what version of pygdal you need, run gdal-config
# RUN poetry run python -m pip install pygdal==3.4.1.10
# COPY ./app /app/app
# RUN mkdir /app/libs
# COPY ./libs /app/libs
EXPOSE 8080 3000
# ENV CLASSPATH=/app/libs/REDapp_Lib.jar:/app/libs/WTime.jar:/app/libs/hss-java.jar:${CLASSPATH}
# CMD PYTHONPATH=. poetry run alembic upgrade head && poetry run uvicorn app.main:app --host 0.0.0.0 --reload --port 8080