0
|
1
|
FROM localhost/archlinux:latest |
|
2
|
RUN --network=host pacman -Sy uutils-coreutils sysstat iotop imagemagick giflib libgccjit libxaw snappy sbcl liburing libxkbcommon --noconfirm |
|
3
|
# custom |
|
4
|
ARG DEV=dev |
|
5
|
ARG DEV_HOME=/home/${DEV} |
|
6
|
ARG ID=808 |
|
7
|
# stage0 |
5
|
8
|
RUN mkdir -p /usr/share/lisp /usr/local/share/lisp /usr/local/share/rust |
2
|
9
|
COPY .stash/bin/ /usr/local/bin/ |
|
10
|
COPY .stash/lib/ /usr/local/lib/ |
|
11
|
COPY .stash/include/ /usr/local/include/ |
|
12
|
COPY .stash/share/ /usr/local/share/ |
|
13
|
COPY .stash/src/ /usr/local/src/ |
0
|
14
|
WORKDIR /usr/local/src |
|
15
|
RUN hg clone https://vc.compiler.company/comp/infra |
|
16
|
WORKDIR infra |
5
|
17
|
ENV CARGO_HOME="/usr/local/share/rust/cargo" |
|
18
|
ENV RUSTUP_HOME="/usr/local/share/rust/rustup" |
0
|
19
|
# stage1 |
5
|
20
|
ENV PATH="$PATH:/usr/local/share/rust/cargo/bin" |
1
|
21
|
RUN skel make rustup |
0
|
22
|
RUN rustup default nightly |
|
23
|
RUN rustup component add --toolchain nightly rust-src rust-analyzer rustc-dev llvm-tools-preview |
5
|
24
|
RUN skel make tree-sitter |
|
25
|
RUN skel make tree-sitter-langs |
0
|
26
|
RUN useradd --system -s /usr/bin/bash -u ${ID} -k /etc/skel -m ${DEV} |
|
27
|
RUN groupadd -g 128 engineer -U ${DEV} |
|
28
|
RUN groupadd -g 256 operator -U ${DEV} |
|
29
|
RUN chown -R ${DEV}:engineer /usr/local/share/ |
|
30
|
RUN chown -R ${DEV}:engineer /usr/local/src/ |
|
31
|
RUN chown -R ${DEV}:engineer /usr/local/bin/ |
|
32
|
RUN chown -R ${DEV}:engineer /usr/local/etc/ |
|
33
|
RUN chown -R ${DEV}:engineer /usr/local/man/ |
|
34
|
USER ${DEV} |
5
|
35
|
RUN mkdir ${DEV_HOME}/.stash |
|
36
|
RUN skel make clean |
|
37
|
RUN skel make quicklisp |
0
|
38
|
WORKDIR ${DEV_HOME} |
|
39
|
ENV DEV=${DEV} |
|
40
|
ENV DEV_ID=${ID} |