mirror of
https://github.com/falk-werner/webfuse-provider
synced 2026-03-02 04:09:18 +00:00
Merge commit 'b19a54d2f9d8a3e83366c638aace4cf3b5daa96e' as 'build/dobuild'
This commit is contained in:
167
build/dobuild/tests/runners/bats.dockerfile
Normal file
167
build/dobuild/tests/runners/bats.dockerfile
Normal file
@@ -0,0 +1,167 @@
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# This file is part of dobuild.
|
||||
# Copyright (c) 2019 Contributors as noted in the AUTHORS file.
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
ARG REGISTRY_PREFIX=''
|
||||
ARG CODENAME=trusty
|
||||
|
||||
FROM ${REGISTRY_PREFIX}ubuntu:${CODENAME} as builder
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV LANG=C.UTF-8
|
||||
ENV LC_ALL=${LANG}
|
||||
|
||||
ARG PARALLELMFLAGS=
|
||||
|
||||
ARG DOCKER_CHANNEL=stable
|
||||
ARG DOCKER_VERSION=18.09.6
|
||||
ARG DOCKER_MD5=a6be1e734421d05abfc4d3e28997e271
|
||||
ARG DOCKER_DOWNLOAD=https://download.docker.com
|
||||
|
||||
ARG DOCKER_HOME="/usr/local/lib/docker-$DOCKER_VERSION"
|
||||
|
||||
ARG CAPATH="./ca-certificates"
|
||||
COPY $CAPATH /usr/local/share/ca-certificates
|
||||
|
||||
RUN set -x \
|
||||
&& { update-ca-certificates || true; } \
|
||||
&& installdeps="tzdata" \
|
||||
&& apt-get update \
|
||||
&& apt-get install --yes --no-install-recommends $installdeps \
|
||||
&& ls /usr/share/zoneinfo \
|
||||
&& cp -H --remove-destination "/usr/share/zoneinfo/$TZ" /tmp/localtime \
|
||||
&& { apt-get purge -y $installdeps || true; } \
|
||||
&& mv /tmp/localtime /etc/localtime \
|
||||
&& echo "$TZ" > /etc/timezone \
|
||||
&& apt-get install --yes --no-install-recommends \
|
||||
ca-certificates \
|
||||
curl \
|
||||
openssl \
|
||||
build-essential \
|
||||
make \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& update-ca-certificates
|
||||
|
||||
RUN set -x \
|
||||
&& curl -fSL -s "$DOCKER_DOWNLOAD/linux/static/${DOCKER_CHANNEL}/$(uname -m)/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \
|
||||
&& md5sum docker.tgz \
|
||||
&& echo "$DOCKER_MD5 docker.tgz" | md5sum -c - \
|
||||
&& tar -xzvf docker.tgz \
|
||||
&& mkdir -p "$DOCKER_HOME" \
|
||||
&& mv docker/docker "$DOCKER_HOME" \
|
||||
&& rm -rf docker \
|
||||
&& rm docker.tgz \
|
||||
&& ln -s "$DOCKER_HOME/docker" /usr/local/bin/docker
|
||||
|
||||
ARG BATS_VERSION=1.1.0
|
||||
ARG BATS_MD5=0cb16021aa8f75a29240434c5aaae0a1
|
||||
ARG BATS_DOWNLOAD=https://github.com/bats-core
|
||||
|
||||
RUN set -x \
|
||||
&& builddeps="coreutils ncurses-bin bash" \
|
||||
&& apt-get update \
|
||||
&& apt-get install --yes --no-install-recommends $builddeps \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& curl -fSL -s "$BATS_DOWNLOAD/bats-core/archive/v$BATS_VERSION.tar.gz" -o bats.tar.gz \
|
||||
&& md5sum bats.tar.gz \
|
||||
&& echo "$BATS_MD5 bats.tar.gz" | md5sum -c - \
|
||||
&& tar -xzvf bats.tar.gz \
|
||||
&& bash "bats-core-$BATS_VERSION/install.sh" /usr/local \
|
||||
&& rm -rf "bats-core-$BATS_VERSION" \
|
||||
&& rm bats.tar.gz
|
||||
|
||||
ARG DUMB_INIT_VERSION=1.2.2
|
||||
ARG DUMB_INIT_MD5=6166084b05772cdcf615a762c6f3b32e
|
||||
ARG DUMB_INIT_DOWNLOAD=https://github.com/Yelp/dumb-init
|
||||
|
||||
RUN set -x \
|
||||
&& parallelMFlags="$PARALLELMFLAGS" \
|
||||
&& [ -n "$parallelMFlags" ] || parallelMFlags="-j$(nproc)" \
|
||||
&& builddeps="vim-common" \
|
||||
&& apt-get update \
|
||||
&& apt-get install --yes --no-install-recommends $builddeps \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& curl -fSL -s "$DUMB_INIT_DOWNLOAD/archive/v${DUMB_INIT_VERSION}.tar.gz" -o dumb-init.tar.gz \
|
||||
&& md5sum dumb-init.tar.gz \
|
||||
&& echo "$DUMB_INIT_MD5 dumb-init.tar.gz" | md5sum -c - \
|
||||
&& export SOURCE_DATE_EPOCH="$(stat -c '%Y' dumb-init.tar.gz)" \
|
||||
&& tar -xzvf dumb-init.tar.gz \
|
||||
&& cd "dumb-init-$DUMB_INIT_VERSION" \
|
||||
&& make "$parallelMFlags" \
|
||||
&& chmod +x dumb-init \
|
||||
&& cp dumb-init /usr/local/bin/dumb-init \
|
||||
&& cd .. \
|
||||
&& rm -rf "dumb-init-$DUMB_INIT_VERSION" \
|
||||
&& rm dumb-init.tar.gz \
|
||||
&& apt-get purge -y $builddeps
|
||||
|
||||
ARG LIBFAKETIME_VERSION=0.9.7
|
||||
ARG LIBFAKETIME_MD5=8617e2c6caf0977b3ce9a271f867302c
|
||||
ARG LIBFAKETIME_DOWNLOAD=https://github.com/wolfcw/libfaketime
|
||||
|
||||
RUN set -x \
|
||||
&& parallelMFlags="$PARALLELMFLAGS" \
|
||||
&& [ -n "$parallelMFlags" ] || parallelMFlags="-j$(nproc)" \
|
||||
&& curl -fSL -s "$LIBFAKETIME_DOWNLOAD/archive/v${LIBFAKETIME_VERSION}.tar.gz" -o libfaketime.tar.gz \
|
||||
&& md5sum libfaketime.tar.gz \
|
||||
&& echo "$LIBFAKETIME_MD5 libfaketime.tar.gz" | md5sum -c - \
|
||||
&& export SOURCE_DATE_EPOCH="$(stat -c '%Y' libfaketime.tar.gz)" \
|
||||
&& tar -xzvf libfaketime.tar.gz \
|
||||
&& cd "libfaketime-$LIBFAKETIME_VERSION" \
|
||||
&& prefix='/usr/local' \
|
||||
&& make "$parallelMFlags" \
|
||||
CFLAGS="-fpic -lpthread -Wno-error -D'PREFIX=\"${prefix}\"' -D'LIBDIRNAME=\"lib\"'" \
|
||||
LDFLAGS='-fpic -lpthread' \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf "libfaketime-$LIBFAKETIME_VERSION" \
|
||||
&& rm libfaketime.tar.gz
|
||||
|
||||
FROM ${REGISTRY_PREFIX}ubuntu:${CODENAME}
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV LANG=C.UTF-8
|
||||
ENV LC_ALL=${LANG}
|
||||
|
||||
COPY --from=builder /usr/local /usr/local
|
||||
COPY --from=builder /etc/localtime /etc/localtime
|
||||
COPY --from=builder /etc/timezone /etc/timezone
|
||||
COPY --from=builder /etc/apt/sources.list.d /etc/apt/sources.list.d
|
||||
|
||||
RUN set -x \
|
||||
&& { update-ca-certificates || true; } \
|
||||
&& apt-get update \
|
||||
&& apt-get install --yes --no-install-recommends \
|
||||
coreutils \
|
||||
ncurses-bin \
|
||||
bash \
|
||||
procps \
|
||||
parallel \
|
||||
ca-certificates \
|
||||
make \
|
||||
git \
|
||||
curl \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& update-ca-certificates \
|
||||
&& useradd -ms /bin/bash user
|
||||
|
||||
USER user
|
||||
|
||||
# Accept the citation notice of GNU parallel (we aren't using this in a
|
||||
# context where it make sense to cite GNU Parallel).
|
||||
RUN set -x \
|
||||
&& mkdir -p ~/.parallel \
|
||||
&& touch ~/.parallel/will-cite
|
||||
|
||||
RUN dumb-init --version
|
||||
RUN parallel --version
|
||||
RUN docker --version
|
||||
RUN bats --version
|
||||
|
||||
ENTRYPOINT ["dumb-init", "--"]
|
||||
Reference in New Issue
Block a user