From daff82397435ca7d962d287863b2c9012a763773 Mon Sep 17 00:00:00 2001 From: "Aode (lion)" Date: Sun, 16 Jan 2022 11:58:15 -0600 Subject: [PATCH] Use 'native' build --- .drone.yml | 39 --------------------------------------- Dockerfile | 54 ++++++++++++++++++++++++++++++------------------------ 2 files changed, 30 insertions(+), 63 deletions(-) diff --git a/.drone.yml b/.drone.yml index 8f695e2..35b89f2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -20,16 +20,6 @@ steps: - git checkout $DRONE_COMMIT - cd .. - rm rust-toolchain - - chown -R 991:991 . - -- name: build - image: asonix/rust-builder:latest-linux-amd64 - pull: always - commands: - - cargo build --target=$TARGET --release - - $TOOL-strip target/$TARGET/release/conduit - - cp target/$TARGET/release/conduit . - - cp conduit conduit-linux-amd64 - name: push image: plugins/docker:20 @@ -44,15 +34,6 @@ steps: build_args: - REPO_ARCH=amd64 -- name: publish - image: plugins/gitea-release:1 - settings: - api_key: - from_secret: gitea_token - base_url: https://git.asonix.dog - files: - - conduit-linux-amd64 - trigger: event: - tag @@ -81,16 +62,6 @@ steps: - git checkout $DRONE_COMMIT - cd .. - rm rust-toolchain - - chown -R 991:991 . - -- name: build - image: asonix/rust-builder:latest-linux-arm64v8 - pull: always - commands: - - cargo build --target=$TARGET --release - - $TOOL-strip target/$TARGET/release/conduit - - cp target/$TARGET/release/conduit . - - cp conduit conduit-linux-arm64v8 - name: push image: plugins/docker:20 @@ -105,15 +76,6 @@ steps: build_args: - REPO_ARCH=arm64v8 -- name: publish - image: plugins/gitea-release:1 - settings: - api_key: - from_secret: gitea_token - base_url: https://git.asonix.dog - files: - - conduit-linux-arm64v8 - trigger: event: - tag @@ -137,7 +99,6 @@ steps: commands: - git clone $DRONE_GIT_HTTP_URL . - git checkout $DRONE_COMMIT - - chown -R 991:991 . - name: manifest image: plugins/manifest:1 diff --git a/Dockerfile b/Dockerfile index 9019dca..f46270f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,34 @@ -ARG REPO_ARCH=amd64 +ARG REPO_ARCH -# production environment -FROM asonix/rust-runner:$REPO_ARCH-latest +FROM $REPO_ARCH/alpine:edge as base + +ARG UID=991 +ARG GID=991 + +RUN \ + addgroup --gid "${GID}" app && \ + adduser -D -G app -u "${UID}" -g "" -h /opt/app app && \ + apk add tini gcc g++ musl + +WORKDIR /opt/app + +FROM base as builder + +RUN \ + apk add clang linux-headers cargo rust && \ + chown -R app:app . + +USER app + +RUN \ + cargo build --release --no-default-features --features conduit-bin,backend_rocksdb && \ + strip target/release/conduit + +FROM base as runner + +COPY --from=builder /conduit/release/conduit /usr/local/bin/conduit ENV CONDUIT_CONFIG="/opt/app/conduit.toml" - -USER root - -RUN \ - apk add --no-cache \ - ca-certificates \ - curl \ - libgcc \ - libstdc++ - -COPY conduit /usr/local/bin/conduit - -RUN \ - chown -R app:app /mnt - -COPY meta/conduit.toml /opt/app/conduit.toml - -VOLUME /mnt USER app -EXPOSE 8080 -ENTRYPOINT ["/sbin/tini", "--"] -CMD /usr/local/bin/conduit +ENTRYPOINT [ "/sbin/tini", "--" ] +CMD [ "/usr/local/bin/conduit" ]