mirror of
				https://github.com/falk-werner/webfuse
				synced 2025-06-13 12:54:15 +00:00 
			
		
		
		
	
		
			
	
	
		
			168 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			168 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# 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", "--"]
							 |