|
1 | 1 | FROM rust:latest AS build |
2 | 2 |
|
| 3 | +ARG PREBUILT_TAG |
3 | 4 | ARG TARGETPLATFORM |
4 | 5 |
|
| 6 | +ENV PREBUILT_TAG=$PREBUILT_TAG |
| 7 | + |
5 | 8 | WORKDIR /app |
6 | 9 | COPY . /app |
7 | 10 |
|
8 | 11 | RUN case ${TARGETPLATFORM} in \ |
9 | | - "linux/amd64") echo "x86_64-unknown-linux-musl" > .toolchain ;; \ |
10 | | - "linux/arm64") echo "aarch64-unknown-linux-musl" > .toolchain ;; \ |
| 12 | + "linux/amd64") echo "x86_64" > .arch && echo "x86_64-unknown-linux-musl" > .toolchain ;; \ |
| 13 | + "linux/arm64") echo "aarch64" > .arch && echo "aarch64-unknown-linux-musl" > .toolchain ;; \ |
11 | 14 | *) echo "Unsupported platform: $TARGETPLATFORM" && exit 1 ;; \ |
12 | 15 | esac |
13 | 16 |
|
14 | | -RUN apt-get update |
15 | | -RUN apt-get install -y musl-tools |
16 | | - |
17 | | -RUN rustup target add $(cat .toolchain) |
18 | | - |
19 | | -RUN cargo build --release --target $(cat .toolchain) |
20 | | -RUN mv ./target/$(cat .toolchain)/release/vigil ./ |
| 17 | +# Run full build? |
| 18 | +RUN if [ -z "$PREBUILT_TAG" ]; then \ |
| 19 | + apt-get update && \ |
| 20 | + apt-get install -y musl-tools && \ |
| 21 | + rustup target add $(cat .toolchain) \ |
| 22 | + ; fi |
| 23 | +RUN if [ -z "$PREBUILT_TAG" ]; then \ |
| 24 | + cargo build --release --target $(cat .toolchain) && \ |
| 25 | + mkdir -p ./vigil/ && \ |
| 26 | + mv ./target/$(cat .toolchain)/release/vigil ./vigil/ \ |
| 27 | + ; fi |
| 28 | + |
| 29 | +# Pull pre-built binary? |
| 30 | +RUN if [ ! -z "$PREBUILT_TAG" ]; then \ |
| 31 | + wget https://github.com/valeriansaliou/vigil/releases/download/$PREBUILT_TAG/$PREBUILT_TAG-$(cat .arch).tar.gz && \ |
| 32 | + tar -xzf $PREBUILT_TAG-$(cat .arch).tar.gz \ |
| 33 | + ; fi |
21 | 34 |
|
22 | 35 | FROM alpine:latest |
23 | 36 |
|
24 | 37 | WORKDIR /usr/src/vigil |
25 | 38 |
|
26 | | -COPY ./res/assets/ ./res/assets/ |
27 | 39 | COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt |
28 | | -COPY --from=build /app/vigil /usr/local/bin/vigil |
| 40 | +COPY --from=build /app/vigil/vigil /usr/local/bin/vigil |
| 41 | +COPY --from=build /app/vigil/res/assets/ ./res/assets/ |
29 | 42 |
|
30 | 43 | CMD [ "vigil", "-c", "/etc/vigil.cfg" ] |
31 | 44 |
|
|
0 commit comments