-
Notifications
You must be signed in to change notification settings - Fork 144
/
Copy pathDockerfile
53 lines (46 loc) · 1.55 KB
/
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
FROM ubuntu:22.04
# disable tzdata questions
ENV DEBIAN_FRONTEND=noninteractive
# use bash
SHELL ["/bin/bash", "-c"]
# install apt-utils
RUN apt-get update -y && \
apt-get install -y apt-utils 2> >( grep -v 'debconf: delaying package configuration, since apt-utils is not installed' >&2 ) \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# essential tools
RUN apt-get update -y && apt-get install -y --no-install-recommends \
ca-certificates \
netbase \
curl \
git \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# required compilers and libraries for gosl
RUN apt-get update -y && apt-get install -y --no-install-recommends \
gcc \
gfortran \
libfftw3-dev \
liblapacke-dev \
libmetis-dev \
libmumps-seq-dev \
libopenblas-dev \
libsuitesparse-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# configure basic system
ARG INSTALL_ZSH="true"
ARG USERNAME="vscode"
ARG USER_UID="1000"
ARG USER_GID=$USER_UID
ARG UPGRADE_PACKAGES="true"
COPY zscripts/microsoft/common-debian.sh /tmp/
RUN bash /tmp/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" \
&& apt-get clean -y && rm -rf /var/lib/apt/lists/* && rm /tmp/common-debian.sh
# install Go tools
ARG GO_VERSION="latest"
ARG GOROOT="/usr/local/go"
ARG GOPATH="/go"
ARG UPDATE_RC="true"
ARG INSTALL_GO_TOOLS="true"
ENV GO111MODULE=auto
COPY zscripts/microsoft/go-debian.sh /tmp/
RUN bash /tmp/go-debian.sh "${GO_VERSION}" "${GOROOT}" "${GOPATH}" "${USERNAME}" "${UPDATE_RC}" "${INSTALL_GO_TOOLS}" \
&& apt-get clean -y && rm /tmp/go-debian.sh