-
Notifications
You must be signed in to change notification settings - Fork 7
/
Dockerfile.gitpod
83 lines (62 loc) · 3.26 KB
/
Dockerfile.gitpod
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
FROM debian:bookworm
ENV TZ=America/Denver
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt update && apt install -y \
bash-completion build-essential cmake curl git git-lfs mbpoll sudo tmux tree vim wget xz-utils \
cmake libboost-dev libczmq-dev libxml2-dev libzmq3-dev pkg-config python3-dev python3-pip
RUN useradd -l -u 33333 -G sudo -md /home/gitpod -s /bin/bash -p gitpod gitpod
ADD https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh /home/gitpod/.bash/git-prompt.sh
RUN chown gitpod:gitpod /home/gitpod/.bash/git-prompt.sh \
&& chmod +x /home/gitpod/.bash/git-prompt.sh \
&& echo "\nsource ~/.bash/git-prompt.sh" >> /home/gitpod/.bashrc \
&& echo "export GIT_PS1_SHOWCOLORHINTS=true" >> /home/gitpod/.bashrc \
&& echo "export PROMPT_COMMAND='__git_ps1 \"\W\" \" » \"'" >> /home/gitpod/.bashrc
ENV GOLANG_VERSION=1.22.1
RUN wget -O go.tgz https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz \
&& tar -C /usr/local -xzf go.tgz && rm go.tgz \
&& ln -s /usr/local/go/bin/* /usr/local/bin
ENV GOPATH /go
ENV PATH $GOPATH/bin:$PATH
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" \
&& chmod -R 777 "$GOPATH"
RUN go install github.com/ramya-rao-a/go-outline@latest 2>&1
RUN go install github.com/mdempsky/gocode@latest 2>&1
RUN go install github.com/stamblerre/gocode@latest 2>&1
RUN go install github.com/rogpeppe/godef@latest 2>&1
RUN go install github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest 2>&1
RUN go install golang.org/x/tools/gopls@latest 2>&1
RUN go install honnef.co/go/tools/cmd/staticcheck@latest 2>&1
RUN go install github.com/cweill/gotests/gotests@latest 2>&1
RUN go install github.com/fatih/gomodifytags@latest 2>&1
RUN go install github.com/josharian/impl@latest 2>&1
RUN go install github.com/haya14busa/goplay/cmd/goplay@latest 2>&1
RUN go install github.com/go-delve/delve/cmd/dlv@latest 2>&1
RUN chmod -R a+rwX /go/pkg && rm -rf /go/src/*
RUN wget -O hivemind.gz https://github.com/DarthSim/hivemind/releases/download/v1.1.0/hivemind-v1.1.0-linux-amd64.gz \
&& gunzip --stdout hivemind.gz > /usr/local/bin/hivemind \
&& chmod +x /usr/local/bin/hivemind \
&& rm hivemind.gz
RUN wget -O overmind.gz https://github.com/DarthSim/overmind/releases/download/v2.4.0/overmind-v2.4.0-linux-amd64.gz \
&& gunzip --stdout overmind.gz > /usr/local/bin/overmind \
&& chmod +x /usr/local/bin/overmind \
&& rm overmind.gz
ADD install-node-red.sh /root/install-node-red.sh
# needed by nod-red install script
ARG TARGETARCH
RUN /root/install-node-red.sh \
&& rm /root/install-node-red.sh
ADD ./src/js/node-red /root/.node-red/nodes/ot-sim
RUN cd /root/.node-red/nodes/ot-sim && npm install
ADD .git /workspaces/ot-sim/.git
ADD CMakeLists.txt /workspaces/ot-sim/CMakeLists.txt
ADD src/c /workspaces/ot-sim/src/c
ADD src/c++ /workspaces/ot-sim/src/c++
RUN cmake -S /workspaces/ot-sim -B /workspaces/ot-sim/build \
&& cmake --build /workspaces/ot-sim/build -j $(nproc) --target install \
&& ldconfig
ADD src/go /workspaces/ot-sim/src/go
RUN make -C /workspaces/ot-sim/src/go install
ADD src/python /workspaces/ot-sim/src/python
RUN python3 -m pip install --break-system-packages /workspaces/ot-sim/src/python
RUN python3 -m pip install --break-system-packages opendssdirect.py~=0.8.4
USER gitpod