Merge pull request #525 from fbartels/hadolint

use hadolint for linting Dockerfiles
This commit is contained in:
Daniel García 2019-07-09 17:22:27 +02:00 committed by GitHub
commit cef38bf40b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 155 additions and 110 deletions

7
.hadolint.yaml Normal file
View File

@ -0,0 +1,7 @@
ignored:
# disable explicit version for apt install
- DL3008
# disable explicit version for apk install
- DL3018
trustedRegistries:
- docker.io

View File

@ -1,11 +1,20 @@
dist: xenial dist: xenial
env:
global:
- HADOLINT_VERSION=1.17.1
language: rust language: rust
rust: nightly rust: nightly
cache: cargo cache: cargo
before_install:
- sudo curl -L https://github.com/hadolint/hadolint/releases/download/v$HADOLINT_VERSION/hadolint-$(uname -s)-$(uname -m) -o /usr/local/bin/hadolint
- sudo chmod +rx /usr/local/bin/hadolint
# Nothing to install # Nothing to install
install: true install: true
script: script:
- git ls-files --exclude='Dockerfile*' --ignored | xargs --max-lines=1 hadolint
- cargo build --features "sqlite" - cargo build --features "sqlite"
- cargo build --features "mysql" - cargo build --features "mysql"

View File

@ -2,32 +2,35 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
########################## BUILD IMAGE ########################## ########################## BUILD IMAGE ##########################
# We need to use the Rust build image, because # We need to use the Rust build image, because
# we need the Rust compiler and Cargo tooling # we need the Rust compiler and Cargo tooling
FROM rust as build FROM rust:1.36 as build
# set mysql backend # set mysql backend
ARG DB=mysql ARG DB=mysql
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
gcc-aarch64-linux-gnu \ gcc-aarch64-linux-gnu \
&& mkdir -p ~/.cargo \ && mkdir -p ~/.cargo \
&& echo '[target.aarch64-unknown-linux-gnu]' >> ~/.cargo/config \ && echo '[target.aarch64-unknown-linux-gnu]' >> ~/.cargo/config \
@ -44,6 +47,7 @@ RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \
&& dpkg --add-architecture arm64 \ && dpkg --add-architecture arm64 \
&& apt-get update \ && apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
libssl-dev:arm64 \ libssl-dev:arm64 \
libc6-dev:arm64 \ libc6-dev:arm64 \
libmariadb-dev:arm64 libmariadb-dev:arm64
@ -73,11 +77,11 @@ ENV ROCKET_WORKERS=10
RUN [ "cross-build-start" ] RUN [ "cross-build-start" ]
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
openssl\ --no-install-recommends \
ca-certificates\ openssl \
libmariadbclient-dev\ ca-certificates \
--no-install-recommends\ libmariadbclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN mkdir /data RUN mkdir /data
@ -94,4 +98,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build /app/target/aarch64-unknown-linux-gnu/release/bitwarden_rs . COPY --from=build /app/target/aarch64-unknown-linux-gnu/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,32 +2,35 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
########################## BUILD IMAGE ########################## ########################## BUILD IMAGE ##########################
# We need to use the Rust build image, because # We need to use the Rust build image, because
# we need the Rust compiler and Cargo tooling # we need the Rust compiler and Cargo tooling
FROM rust as build FROM rust:1.36 as build
# set sqlite as default for DB ARG for backward comaptibility # set sqlite as default for DB ARG for backward comaptibility
ARG DB=sqlite ARG DB=sqlite
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
gcc-aarch64-linux-gnu \ gcc-aarch64-linux-gnu \
&& mkdir -p ~/.cargo \ && mkdir -p ~/.cargo \
&& echo '[target.aarch64-unknown-linux-gnu]' >> ~/.cargo/config \ && echo '[target.aarch64-unknown-linux-gnu]' >> ~/.cargo/config \
@ -44,6 +47,7 @@ RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \
&& dpkg --add-architecture arm64 \ && dpkg --add-architecture arm64 \
&& apt-get update \ && apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
libssl-dev:arm64 \ libssl-dev:arm64 \
libc6-dev:arm64 \ libc6-dev:arm64 \
libmariadb-dev:arm64 libmariadb-dev:arm64
@ -73,11 +77,11 @@ ENV ROCKET_WORKERS=10
RUN [ "cross-build-start" ] RUN [ "cross-build-start" ]
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
openssl\ --no-install-recommends \
ca-certificates\ openssl \
libmariadbclient-dev\ ca-certificates \
--no-install-recommends\ libmariadbclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN mkdir /data RUN mkdir /data
@ -94,4 +98,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build /app/target/aarch64-unknown-linux-gnu/release/bitwarden_rs . COPY --from=build /app/target/aarch64-unknown-linux-gnu/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,41 +2,43 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
########################## BUILD IMAGE ########################## ########################## BUILD IMAGE ##########################
# We need to use the Rust build image, because # We need to use the Rust build image, because
# we need the Rust compiler and Cargo tooling # we need the Rust compiler and Cargo tooling
FROM rust as build FROM rust:1.36 as build
# set mysql backend # set mysql backend
ARG DB=mysql ARG DB=mysql
# Using bundled SQLite, no need to install it # Using bundled SQLite, no need to install it
# RUN apt-get update && apt-get install -y\ # RUN apt-get update && apt-get install -y\
# --no-install-recommends \
# sqlite3\ # sqlite3\
# --no-install-recommends\
# && rm -rf /var/lib/apt/lists/* # && rm -rf /var/lib/apt/lists/*
# Install MySQL package # Install MySQL package
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libmariadb-dev\ --no-install-recommends \
--no-install-recommends\ libmariadb-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Creates a dummy project used to grab dependencies # Creates a dummy project used to grab dependencies
RUN USER=root cargo new --bin app RUN USER=root cargo new --bin app
@ -74,12 +76,12 @@ ENV ROCKET_PORT=80
ENV ROCKET_WORKERS=10 ENV ROCKET_WORKERS=10
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
openssl\ --no-install-recommends \
ca-certificates\ openssl \
libmariadbclient-dev\ ca-certificates \
--no-install-recommends\ libmariadbclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN mkdir /data RUN mkdir /data
VOLUME /data VOLUME /data
@ -93,4 +95,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build app/target/release/bitwarden_rs . COPY --from=build app/target/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,19 +2,21 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
@ -28,10 +30,10 @@ ARG DB=mysql
ENV USER "root" ENV USER "root"
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
libmysqlclient-dev\ --no-install-recommends \
--no-install-recommends\ libmysqlclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
WORKDIR /app WORKDIR /app
@ -50,7 +52,7 @@ RUN cargo build --features ${DB} --release
######################## RUNTIME IMAGE ######################## ######################## RUNTIME IMAGE ########################
# Create a new stage with a minimal image # Create a new stage with a minimal image
# because we already have a binary built # because we already have a binary built
FROM alpine:3.9 FROM alpine:3.10
ENV ROCKET_ENV "staging" ENV ROCKET_ENV "staging"
ENV ROCKET_PORT=80 ENV ROCKET_PORT=80
@ -58,11 +60,10 @@ ENV ROCKET_WORKERS=10
ENV SSL_CERT_DIR=/etc/ssl/certs ENV SSL_CERT_DIR=/etc/ssl/certs
# Install needed libraries # Install needed libraries
RUN apk add \ RUN apk add --no-cache \
openssl \ openssl \
mariadb-connector-c \ mariadb-connector-c \
ca-certificates \ ca-certificates
&& rm /var/cache/apk/*
RUN mkdir /data RUN mkdir /data
VOLUME /data VOLUME /data
@ -76,4 +77,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build /app/target/x86_64-unknown-linux-musl/release/bitwarden_rs . COPY --from=build /app/target/x86_64-unknown-linux-musl/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,41 +2,43 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
########################## BUILD IMAGE ########################## ########################## BUILD IMAGE ##########################
# We need to use the Rust build image, because # We need to use the Rust build image, because
# we need the Rust compiler and Cargo tooling # we need the Rust compiler and Cargo tooling
FROM rust as build FROM rust:1.36 as build
# set sqlite as default for DB ARG for backward comaptibility # set sqlite as default for DB ARG for backward comaptibility
ARG DB=sqlite ARG DB=sqlite
# Using bundled SQLite, no need to install it # Using bundled SQLite, no need to install it
# RUN apt-get update && apt-get install -y\ # RUN apt-get update && apt-get install -y\
# sqlite3\ # --no-install-recommends \
# --no-install-recommends\ # sqlite3 \
# && rm -rf /var/lib/apt/lists/* # && rm -rf /var/lib/apt/lists/*
# Install MySQL package # Install MySQL package
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libmariadb-dev\ --no-install-recommends \
--no-install-recommends\ libmariadb-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Creates a dummy project used to grab dependencies # Creates a dummy project used to grab dependencies
RUN USER=root cargo new --bin app RUN USER=root cargo new --bin app
@ -74,12 +76,12 @@ ENV ROCKET_PORT=80
ENV ROCKET_WORKERS=10 ENV ROCKET_WORKERS=10
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
openssl\ --no-install-recommends \
ca-certificates\ openssl \
libmariadbclient-dev\ ca-certificates \
--no-install-recommends\ libmariadbclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN mkdir /data RUN mkdir /data
VOLUME /data VOLUME /data
@ -93,4 +95,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build app/target/release/bitwarden_rs . COPY --from=build app/target/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,19 +2,21 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
@ -28,10 +30,10 @@ ARG DB=sqlite
ENV USER "root" ENV USER "root"
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
libmysqlclient-dev\ --no-install-recommends \
--no-install-recommends\ libmysqlclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
WORKDIR /app WORKDIR /app
@ -50,7 +52,7 @@ RUN cargo build --features ${DB} --release
######################## RUNTIME IMAGE ######################## ######################## RUNTIME IMAGE ########################
# Create a new stage with a minimal image # Create a new stage with a minimal image
# because we already have a binary built # because we already have a binary built
FROM alpine:3.9 FROM alpine:3.10
ENV ROCKET_ENV "staging" ENV ROCKET_ENV "staging"
ENV ROCKET_PORT=80 ENV ROCKET_PORT=80
@ -58,11 +60,10 @@ ENV ROCKET_WORKERS=10
ENV SSL_CERT_DIR=/etc/ssl/certs ENV SSL_CERT_DIR=/etc/ssl/certs
# Install needed libraries # Install needed libraries
RUN apk add \ RUN apk add --no-cache \
openssl \ openssl \
mariadb-connector-c \ mariadb-connector-c \
ca-certificates \ ca-certificates
&& rm /var/cache/apk/*
RUN mkdir /data RUN mkdir /data
VOLUME /data VOLUME /data
@ -76,4 +77,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build /app/target/x86_64-unknown-linux-musl/release/bitwarden_rs . COPY --from=build /app/target/x86_64-unknown-linux-musl/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,32 +2,35 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
########################## BUILD IMAGE ########################## ########################## BUILD IMAGE ##########################
# We need to use the Rust build image, because # We need to use the Rust build image, because
# we need the Rust compiler and Cargo tooling # we need the Rust compiler and Cargo tooling
FROM rust as build FROM rust:1.36 as build
# set mysql backend # set mysql backend
ARG DB=mysql ARG DB=mysql
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
gcc-arm-linux-gnueabi \ gcc-arm-linux-gnueabi \
&& mkdir -p ~/.cargo \ && mkdir -p ~/.cargo \
&& echo '[target.arm-unknown-linux-gnueabi]' >> ~/.cargo/config \ && echo '[target.arm-unknown-linux-gnueabi]' >> ~/.cargo/config \
@ -44,6 +47,7 @@ RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \
&& dpkg --add-architecture armel \ && dpkg --add-architecture armel \
&& apt-get update \ && apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
libssl-dev:armel \ libssl-dev:armel \
libc6-dev:armel \ libc6-dev:armel \
libmariadb-dev:armel libmariadb-dev:armel
@ -73,12 +77,12 @@ ENV ROCKET_WORKERS=10
RUN [ "cross-build-start" ] RUN [ "cross-build-start" ]
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
openssl\ --no-install-recommends \
ca-certificates\ openssl \
libmariadbclient-dev\ ca-certificates \
--no-install-recommends\ libmariadbclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN mkdir /data RUN mkdir /data
@ -94,4 +98,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build /app/target/arm-unknown-linux-gnueabi/release/bitwarden_rs . COPY --from=build /app/target/arm-unknown-linux-gnueabi/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,32 +2,35 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
########################## BUILD IMAGE ########################## ########################## BUILD IMAGE ##########################
# We need to use the Rust build image, because # We need to use the Rust build image, because
# we need the Rust compiler and Cargo tooling # we need the Rust compiler and Cargo tooling
FROM rust as build FROM rust:1.36 as build
# set sqlite as default for DB ARG for backward comaptibility # set sqlite as default for DB ARG for backward comaptibility
ARG DB=sqlite ARG DB=sqlite
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
gcc-arm-linux-gnueabi \ gcc-arm-linux-gnueabi \
&& mkdir -p ~/.cargo \ && mkdir -p ~/.cargo \
&& echo '[target.arm-unknown-linux-gnueabi]' >> ~/.cargo/config \ && echo '[target.arm-unknown-linux-gnueabi]' >> ~/.cargo/config \
@ -44,6 +47,7 @@ RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \
&& dpkg --add-architecture armel \ && dpkg --add-architecture armel \
&& apt-get update \ && apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
libssl-dev:armel \ libssl-dev:armel \
libc6-dev:armel \ libc6-dev:armel \
libmariadb-dev:armel libmariadb-dev:armel
@ -73,12 +77,12 @@ ENV ROCKET_WORKERS=10
RUN [ "cross-build-start" ] RUN [ "cross-build-start" ]
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
openssl\ --no-install-recommends \
ca-certificates\ openssl \
libmariadbclient-dev\ ca-certificates \
--no-install-recommends\ libmariadbclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN mkdir /data RUN mkdir /data
@ -94,4 +98,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build /app/target/arm-unknown-linux-gnueabi/release/bitwarden_rs . COPY --from=build /app/target/arm-unknown-linux-gnueabi/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,32 +2,35 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
########################## BUILD IMAGE ########################## ########################## BUILD IMAGE ##########################
# We need to use the Rust build image, because # We need to use the Rust build image, because
# we need the Rust compiler and Cargo tooling # we need the Rust compiler and Cargo tooling
FROM rust as build FROM rust:1.36 as build
# set mysql backend # set mysql backend
ARG DB=mysql ARG DB=mysql
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
gcc-arm-linux-gnueabihf \ gcc-arm-linux-gnueabihf \
&& mkdir -p ~/.cargo \ && mkdir -p ~/.cargo \
&& echo '[target.armv7-unknown-linux-gnueabihf]' >> ~/.cargo/config \ && echo '[target.armv7-unknown-linux-gnueabihf]' >> ~/.cargo/config \
@ -44,6 +47,7 @@ RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \
&& dpkg --add-architecture armhf \ && dpkg --add-architecture armhf \
&& apt-get update \ && apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
libssl-dev:armhf \ libssl-dev:armhf \
libc6-dev:armhf \ libc6-dev:armhf \
libmariadb-dev:armhf libmariadb-dev:armhf
@ -74,12 +78,12 @@ ENV ROCKET_WORKERS=10
RUN [ "cross-build-start" ] RUN [ "cross-build-start" ]
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
openssl\ --no-install-recommends \
ca-certificates\ openssl \
libmariadbclient-dev\ ca-certificates \
--no-install-recommends\ libmariadbclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN mkdir /data RUN mkdir /data
@ -95,4 +99,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build /app/target/armv7-unknown-linux-gnueabihf/release/bitwarden_rs . COPY --from=build /app/target/armv7-unknown-linux-gnueabihf/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]

View File

@ -2,32 +2,35 @@
# https://docs.docker.com/develop/develop-images/multistage-build/ # https://docs.docker.com/develop/develop-images/multistage-build/
# https://whitfin.io/speeding-up-rust-docker-builds/ # https://whitfin.io/speeding-up-rust-docker-builds/
####################### VAULT BUILD IMAGE ####################### ####################### VAULT BUILD IMAGE #######################
FROM alpine as vault FROM alpine:3.10 as vault
ENV VAULT_VERSION "v2.10.1" ENV VAULT_VERSION "v2.10.1"
ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz" ENV URL "https://github.com/dani-garcia/bw_web_builds/releases/download/$VAULT_VERSION/bw_web_$VAULT_VERSION.tar.gz"
RUN apk add --update-cache --upgrade \ RUN apk add --no-cache --upgrade \
curl \ curl \
tar tar
RUN mkdir /web-vault RUN mkdir /web-vault
WORKDIR /web-vault WORKDIR /web-vault
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
RUN curl -L $URL | tar xz RUN curl -L $URL | tar xz
RUN ls RUN ls
########################## BUILD IMAGE ########################## ########################## BUILD IMAGE ##########################
# We need to use the Rust build image, because # We need to use the Rust build image, because
# we need the Rust compiler and Cargo tooling # we need the Rust compiler and Cargo tooling
FROM rust as build FROM rust:1.36 as build
# set sqlite as default for DB ARG for backward comaptibility # set sqlite as default for DB ARG for backward comaptibility
ARG DB=sqlite ARG DB=sqlite
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
gcc-arm-linux-gnueabihf \ gcc-arm-linux-gnueabihf \
&& mkdir -p ~/.cargo \ && mkdir -p ~/.cargo \
&& echo '[target.armv7-unknown-linux-gnueabihf]' >> ~/.cargo/config \ && echo '[target.armv7-unknown-linux-gnueabihf]' >> ~/.cargo/config \
@ -44,11 +47,11 @@ RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \
&& dpkg --add-architecture armhf \ && dpkg --add-architecture armhf \
&& apt-get update \ && apt-get update \
&& apt-get install -y \ && apt-get install -y \
--no-install-recommends \
libssl-dev:armhf \ libssl-dev:armhf \
libc6-dev:armhf \ libc6-dev:armhf \
libmariadb-dev:armhf libmariadb-dev:armhf
ENV CC_armv7_unknown_linux_gnueabihf="/usr/bin/arm-linux-gnueabihf-gcc" ENV CC_armv7_unknown_linux_gnueabihf="/usr/bin/arm-linux-gnueabihf-gcc"
ENV CROSS_COMPILE="1" ENV CROSS_COMPILE="1"
ENV OPENSSL_INCLUDE_DIR="/usr/include/arm-linux-gnueabihf" ENV OPENSSL_INCLUDE_DIR="/usr/include/arm-linux-gnueabihf"
@ -74,12 +77,12 @@ ENV ROCKET_WORKERS=10
RUN [ "cross-build-start" ] RUN [ "cross-build-start" ]
# Install needed libraries # Install needed libraries
RUN apt-get update && apt-get install -y\ RUN apt-get update && apt-get install -y \
openssl\ --no-install-recommends \
ca-certificates\ openssl \
libmariadbclient-dev\ ca-certificates \
--no-install-recommends\ libmariadbclient-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN mkdir /data RUN mkdir /data
@ -95,4 +98,4 @@ COPY --from=vault /web-vault ./web-vault
COPY --from=build /app/target/armv7-unknown-linux-gnueabihf/release/bitwarden_rs . COPY --from=build /app/target/armv7-unknown-linux-gnueabihf/release/bitwarden_rs .
# Configures the startup! # Configures the startup!
CMD ./bitwarden_rs CMD ["./bitwarden_rs"]