From ef345d6ae982ba4453859ff7e4cb6a73add758b8 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sat, 22 Feb 2020 16:58:35 +0100 Subject: [PATCH] refactoring --- .drone.jsonnet | 28 ++++++++++------------------ .drone.yml | 29 +++++++++-------------------- Dockerfile | 38 ++++++++++++++++++++++++++++++++++++++ Dockerfile.amd64 | 45 --------------------------------------------- Makefile | 27 +++++++++++++++++++++++++++ README.md | 2 +- 6 files changed, 85 insertions(+), 84 deletions(-) create mode 100644 Dockerfile delete mode 100644 Dockerfile.amd64 create mode 100644 Makefile diff --git a/.drone.jsonnet b/.drone.jsonnet index c9d1b18..848e11a 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -1,5 +1,4 @@ local PipelineBuild(arch='amd64') = { - local tag = 'linux-' + arch, kind: 'pipeline', name: 'build-container-' + arch, platform: { @@ -11,27 +10,20 @@ local PipelineBuild(arch='amd64') = { name: 'binary', image: 'clux/muslrust:nightly-2019-12-19', environment: { - DB: 'postgresql', - DEBIAN_FRONTEND: 'noninteractive', - LANG: 'C.UTF-8', - TZ: 'UTC', + BUILD_VERSION: '${DRONE_TAG%-*}', }, commands: [ - '[ -z "${DRONE_TAG}" ] && BITWARDEN_VERSION=1.13.1 || BITWARDEN_VERSION="${DRONE_TAG##v}"', - 'mkdir -p source/', - 'apt-get -qq update && apt-get install -yqq --no-install-recommends libpq-dev ', - 'rustup set profile minimal', - 'curl -sSL https://github.com/dani-garcia/bitwarden_rs/archive/"$${BITWARDEN_VERSION%-*}".tar.gz | tar xz -C source/ --strip-components=1', - 'cd source/ && cargo build -j 8 --features $DB --release', + 'apt-get -qq update && apt-get install -yqq --no-install-recommends libpq-dev', + 'make build', ], }, { name: 'dryrun', - image: 'plugins/docker:' + tag, + image: 'plugins/docker', settings: { dry_run: true, - dockerfile: 'Dockerfile.' + arch, - repo: 'xoxys/bitwardenrs', + dockerfile: 'Dockerfile', + repo: 'xoxys/${DRONE_REPO_NAME}', username: { from_secret: 'docker_username' }, password: { from_secret: 'docker_password' }, }, @@ -43,12 +35,12 @@ local PipelineBuild(arch='amd64') = { }, { name: 'publish', - image: 'plugins/docker:' + tag, + image: 'plugins/docker', settings: { auto_tag: true, auto_tag_suffix: arch, - dockerfile: 'Dockerfile.' + arch, - repo: 'xoxys/bitwardenrs', + dockerfile: 'Dockerfile', + repo: 'xoxys/${DRONE_REPO_NAME}', username: { from_secret: 'docker_username' }, password: { from_secret: 'docker_password' }, }, @@ -112,7 +104,7 @@ local PipelineNotifications(depends_on=[]) = { DOCKERHUB_USERNAME: { from_secret: 'docker_username' }, DOCKERHUB_PASSWORD: { from_secret: 'docker_password' }, DOCKERHUB_REPO_PREFIX: 'xoxys', - DOCKERHUB_REPO_NAME: 'bitwardenrs', + DOCKERHUB_REPO_NAME: '${DRONE_REPO_NAME}', README_PATH: 'README.md', SHORT_DESCRIPTION: 'Rootless Bitwarden_RS - Self-hosted password manager', }, diff --git a/.drone.yml b/.drone.yml index 89f23a8..22c8866 100644 --- a/.drone.yml +++ b/.drone.yml @@ -10,26 +10,19 @@ steps: - name: binary image: clux/muslrust:nightly-2019-12-19 commands: - - "[ -z \"${DRONE_TAG}\" ] && BITWARDEN_VERSION=1.13.1 || BITWARDEN_VERSION=\"${DRONE_TAG##v}\"" - - mkdir -p source/ - "apt-get -qq update && apt-get install -yqq --no-install-recommends libpq-dev " - - rustup set profile minimal - - curl -sSL https://github.com/dani-garcia/bitwarden_rs/archive/"$${BITWARDEN_VERSION%-*}".tar.gz | tar xz -C source/ --strip-components=1 - - cd source/ && cargo build -j 8 --features $DB --release + - make build environment: - DB: postgresql - DEBIAN_FRONTEND: noninteractive - LANG: C.UTF-8 - TZ: UTC + BUILD_VERSION: ${DRONE_TAG%-*} - name: dryrun - image: plugins/docker:linux-amd64 + image: plugins/docker settings: - dockerfile: Dockerfile.amd64 + dockerfile: Dockerfile dry_run: true password: from_secret: docker_password - repo: xoxys/bitwardenrs + repo: xoxys/${DRONE_REPO_NAME} username: from_secret: docker_username when: @@ -37,14 +30,14 @@ steps: - refs/pull/** - name: publish - image: plugins/docker:linux-amd64 + image: plugins/docker settings: auto_tag: true auto_tag_suffix: amd64 - dockerfile: Dockerfile.amd64 + dockerfile: Dockerfile password: from_secret: docker_password - repo: xoxys/bitwardenrs + repo: xoxys/${DRONE_REPO_NAME} username: from_secret: docker_username when: @@ -97,7 +90,7 @@ steps: environment: DOCKERHUB_PASSWORD: from_secret: docker_password - DOCKERHUB_REPO_NAME: bitwardenrs + DOCKERHUB_REPO_NAME: ${DRONE_REPO_NAME} DOCKERHUB_REPO_PREFIX: xoxys DOCKERHUB_USERNAME: from_secret: docker_username @@ -135,8 +128,4 @@ trigger: depends_on: - build-container-amd64 ---- -kind: signature -hmac: 5164600e992db4b554b23132b90d2d9ec998b86b161250a12c06a34896b4fccb - ... diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..23acb4d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +FROM xoxys/alpine:3.11 + +LABEL maintainer="Robert Kaussow " \ + org.label-schema.name="bitwardenrs" \ + org.label-schema.version="1.2" \ + org.label-schema.vendor="Robert Kaussow" \ + org.label-schema.schema-version="1.0" + +ARG VAULT_VERSION=2.12.0c + +ADD overlay/ / + +RUN apk --update add --virtual .build-deps tar curl && \ + apk --update add openssl postgresql-libs ca-certificates && \ + mkdir -p /app/web-vault /app/data && \ + curl -SsL "https://github.com/dani-garcia/bw_web_builds/releases/download/v${VAULT_VERSION}/bw_web_v${VAULT_VERSION}.tar.gz" | \ + tar xz -C /app/web-vault && \ + apk del .build-deps && \ + rm -rf /var/cache/apk/* && \ + rm -rf /tmp/* && \ + chown -R app:app /app + +ADD src/Rocket.toml /app +ADD src/target/x86_64-unknown-linux-musl/release/bitwarden_rs /app + +VOLUME /app/data + +EXPOSE 8080 +EXPOSE 3012 + +USER app + +STOPSIGNAL SIGTERM + +ENTRYPOINT ["/usr/local/bin/entrypoint"] +HEALTHCHECK --interval=10s --timeout=3s --retries=3 CMD /usr/local/bin/healthcheck +WORKDIR /app +CMD [] diff --git a/Dockerfile.amd64 b/Dockerfile.amd64 deleted file mode 100644 index 557042f..0000000 --- a/Dockerfile.amd64 +++ /dev/null @@ -1,45 +0,0 @@ -FROM alpine:3.11 - -LABEL maintainer="Robert Kaussow " \ - org.label-schema.name="bitwardenrs" \ - org.label-schema.version="1.2" \ - org.label-schema.vendor="Robert Kaussow" \ - org.label-schema.schema-version="1.0" - -ARG VAULT_VERSION=2.12.0c -ARG VAULT_TARBALL=https://github.com/dani-garcia/bw_web_builds/releases/download/v${VAULT_VERSION}/bw_web_v${VAULT_VERSION}.tar.gz - -RUN addgroup -g 101 -S app && \ - adduser -S -D -H -u 101 -h /app -s /sbin/nologin -G app -g app app && \ - apk --update add --virtual .build-deps tar curl && \ - apk --update add openssl postgresql-libs ca-certificates && \ - curl -SsL -o /usr/local/bin/gomplate https://github.com/hairyhenderson/gomplate/releases/download/v3.5.0/gomplate_linux-amd64-slim && \ - curl -SsL -o /usr/local/bin/url-parser https://github.com/xoxys/url-parser/releases/download/v0.1.0/url-parser-0.1.0-linux-amd64 && \ - curl -SsL -o /usr/local/bin/wait-for https://raw.githubusercontent.com/xoxys/wait-for/master/wait-for && \ - chmod 755 /usr/local/bin/gomplate && \ - chmod 755 /usr/local/bin/url-parser && \ - chmod 755 /usr/local/bin/wait-for && \ - mkdir -p /app/web-vault /app/data && \ - curl -SsL ${VAULT_TARBALL} | tar xz -C /app/web-vault && \ - apk del .build-deps && \ - rm -rf /var/cache/apk/* && \ - rm -rf /tmp/* && \ - chown -R app:app /app - -ADD overlay/ / -ADD source/Rocket.toml /app -ADD source/target/x86_64-unknown-linux-musl/release/bitwarden_rs /app - -VOLUME /app/data - -EXPOSE 8080 -EXPOSE 3012 - -USER app - -STOPSIGNAL SIGTERM - -ENTRYPOINT ["/usr/local/bin/entrypoint"] -HEALTHCHECK --interval=10s --timeout=3s --retries=3 CMD /usr/local/bin/healthcheck -WORKDIR /app -CMD [] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cf6adc6 --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +BUILD_VERSION ?= 1.13.1 +DB ?= postgresql +DEBIAN_FRONTEND ?= noninteractive +LANG ?= C.UTF-8 +TZ ?= UTC +SRC := src + +.PHONY: all +all: build + +.PHONY: build +build: build-src build-bin + +.PHONY: build-src +build-src: + mkdir -p $(SRC); \ + curl -sSL "https://github.com/dani-garcia/bitwarden_rs/archive/$${BUILD_VERSION##v}.tar.gz" | tar xz -C $(SRC) --strip-components=1 + +.PHONY: build-bin +build-bin: + rustup set profile minimal && \ + cd $(SRC) && \ + cargo build -j 8 --features $(DB) --release + +.PHONY: clean +clean: + rm -rf $(SRC) diff --git a/README.md b/README.md index 7790cc9..08fba45 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# [bitwarden_rs](https://gitea.rknet.org/docker/bitwarden_rs) +# [bitwardenrs](https://gitea.rknet.org/docker/bitwarden_rs) [![Build Status](https://img.shields.io/drone/build/docker/bitwarden_rs?logo=drone&server=https%3A%2F%2Fdrone.rknet.org)](https://drone.rknet.org/docker/bitwarden_rs) [![Docker Hub](https://img.shields.io/badge/docker-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/xoxys/bitwardenrs)