mirror of
https://github.com/falk-werner/webfuse
synced 2024-10-27 20:34:10 +00:00
removes bash dependency
- simplifies scripts to support posix shell - adds REGISTERY_PREFIX to support usage of local docker registry - renames wrapper template - adds discovery for tty and interactive for wrappers
This commit is contained in:
parent
f4bad5d72f
commit
9d0cffb31d
9
Makefile
9
Makefile
@ -26,8 +26,8 @@ OUT ?= $(PROJECT_ROOT)/.build
|
||||
VERSION ?= $(shell cat $(PROJECT_ROOT)/VERSION)
|
||||
VERSION := $(VERSION)
|
||||
|
||||
UID ?= $(shell id -u)
|
||||
UID := $(UID)
|
||||
USERID ?= $(shell id -u)
|
||||
USERID := $(USERID)
|
||||
|
||||
CONTAINER_USER ?= user
|
||||
CONTAINER_GROUP ?= user
|
||||
@ -158,9 +158,10 @@ DOCKER_RUNFLAGS += --env NINJA_STATUS
|
||||
|
||||
DOCKER_BUILDARGS += CODENAME=$(CODENAME)
|
||||
DOCKER_BUILDARGS += PARALLELMFLAGS=$(_PARALLELMFLAGS)
|
||||
DOCKER_BUILDARGS += USERID=$(UID)
|
||||
DOCKER_BUILDARGS += USERID=$(USERID)
|
||||
DOCKER_BUILDARGS += PROJECT_ROOT=$(CONTAINER_PROJECT_ROOT)
|
||||
DOCKER_BUILDARGS += OUT=$(CONTAINER_OUT)
|
||||
DOCKER_BUILDARGS += REGISTRY_PREFIX=$(REGISTRY_PREFIX)
|
||||
|
||||
DOCKER_BUILDFLAGS += --rm
|
||||
DOCKER_BUILDFLAGS += $(addprefix --build-arg ,$(DOCKER_BUILDARGS))
|
||||
@ -277,7 +278,7 @@ discover_cc_rule = \
|
||||
discover_cc = cat $<
|
||||
|
||||
wrapper_rule = \
|
||||
$$(OUT)/$1/$$(BUILDTYPE)/gdbserver: $$(PROJECT_ROOT)/build/run_image.template $$(OUT)/docker/$1; \
|
||||
$$(OUT)/$1/$$(BUILDTYPE)/gdbserver: $$(PROJECT_ROOT)/build/run_image.sh.template $$(OUT)/docker/$1; \
|
||||
$$(SILENT)$$(call wrapper,$1)
|
||||
wrapper = \
|
||||
$(call echo_if_silent,generating $@) \
|
||||
|
@ -1,6 +1,7 @@
|
||||
ARG REGISTRY_PREFIX=''
|
||||
ARG CODENAME=testing-slim
|
||||
|
||||
FROM debian:$CODENAME as builder
|
||||
FROM ${REGISTRY_PREFIX}debian:${CODENAME} as builder
|
||||
|
||||
RUN set -x \
|
||||
&& apt update \
|
||||
|
@ -1,6 +1,7 @@
|
||||
ARG REGISTRY_PREFIX=''
|
||||
ARG CODENAME=bionic
|
||||
|
||||
FROM ubuntu:$CODENAME as builder
|
||||
FROM ${REGISTRY_PREFIX}ubuntu:${CODENAME} as builder
|
||||
|
||||
RUN set -x \
|
||||
&& apt update \
|
||||
|
@ -1,6 +1,7 @@
|
||||
ARG REGISTRY_PREFIX=''
|
||||
ARG CODENAME=testing-slim
|
||||
|
||||
FROM arm32v7/debian:$CODENAME as builder
|
||||
FROM ${REGISTRY_PREFIX}arm32v7/debian:${CODENAME} as builder
|
||||
|
||||
ARG QEMU_VERSION_=v3.1.0-2
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
ARG REGISTRY_PREFIX=''
|
||||
ARG CODENAME=bionic
|
||||
|
||||
FROM arm32v7/ubuntu:$CODENAME as builder
|
||||
FROM ${REGISTRY_PREFIX}arm32v7/ubuntu:${CODENAME} as builder
|
||||
|
||||
ARG QEMU_VERSION_=v3.1.0-2
|
||||
|
||||
|
18
build/is_running_in_bg.sh
Executable file
18
build/is_running_in_bg.sh
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
running_in_background() {
|
||||
pid="$1"
|
||||
|
||||
case "$("$PS" -o stat= -p "$pid" 2>/dev/null || echo '+')" in
|
||||
*+*) ;;
|
||||
*) return 0 ;;
|
||||
esac
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
PS="${PS:-ps}"
|
||||
|
||||
running_in_background "$@"
|
50
build/run_image.sh.template
Normal file
50
build/run_image.sh.template
Normal file
@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
DOCKER="${DOCKER:-%DOCKER%}"
|
||||
IMAGE="${IMAGE:-%IMAGE%}"
|
||||
NETWORK="${NETWORK:-host}"
|
||||
USERID="${USERID:-$(id -u)}"
|
||||
PROJECT_ROOT="${PROJECT_ROOT:-%PROJECT_ROOT%}"
|
||||
SCRIPT_ROOT="${SCRIPT_ROOT:-"$PROJECT_ROOT/build"}"
|
||||
ENTRYPOINT="${ENTRYPOINT:-%RUNCMD%}"
|
||||
|
||||
if [ ! -d "$SCRIPT_ROOT" ]; then
|
||||
echo "error:$0: $SCRIPT_ROOT not found; set project root (PROJECT_ROOT=)" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
HOST_CONTAINER="${HOST_CONTAINER:-"$("$SCRIPT_ROOT/get_container_id.sh")"}" || true
|
||||
|
||||
RUNFLAGS='%RUNFLAGS%'
|
||||
|
||||
if [ -n "$HOST_CONTAINER" ]; then
|
||||
RUNFLAGS="$RUNFLAGS --volumes-from $HOST_CONTAINER"
|
||||
fi
|
||||
|
||||
RUNFLAGS="$RUNFLAGS --network $NETWORK"
|
||||
|
||||
if [ -n "$CONTAINER_CGROUP_PARENT" ]; then
|
||||
RUNFLAGS="$RUNFLAGS --cgroup-parent $CONTAINER_CGROUP_PARENT"
|
||||
fi
|
||||
|
||||
RUNFLAGS="$RUNFLAGS --workdir $PWD"
|
||||
|
||||
# if STDIN piped or redirected
|
||||
if [ -p /dev/stdin ] || { [ ! -t 0 ] && [ ! -p /dev/stdin ]; }; then
|
||||
RUNFLAGS="$RUNFLAGS --interactive"
|
||||
elif [ -t 1 ]; then
|
||||
RUNFLAGS="$RUNFLAGS --tty"
|
||||
fi
|
||||
|
||||
if [ -t 0 ] && ! "$SCRIPT_ROOT/is_running_in_bg.sh" $$; then
|
||||
RUNFLAGS="$RUNFLAGS --interactive"
|
||||
fi
|
||||
|
||||
RUNFLAGS="$RUNFLAGS --user $USERID:$USERID"
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
set -- $RUNFLAGS --entrypoint "$ENTRYPOINT" "$IMAGE" "$@"
|
||||
|
||||
exec "$DOCKER" run "$@"
|
@ -1,41 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
DOCKER="${DOCKER:-%DOCKER%}"
|
||||
IMAGE="${IMAGE:-%IMAGE%}"
|
||||
NETWORK="${NETWORK:-host}"
|
||||
PROJECT_ROOT="${PROJECT_ROOT:-%PROJECT_ROOT%}"
|
||||
CONTAINER_ID_CMD="$PROJECT_ROOT/build/get_container_id.sh"
|
||||
|
||||
if command -v "$CONTAINER_ID_CMD" 2>&1 1>/dev/null; then
|
||||
HOST_CONTAINER="${HOST_CONTAINER:-"$("$CONTAINER_ID_CMD")"}" || true
|
||||
else
|
||||
echo "warning:$0: failed to discover host environment" 1>&2
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2162
|
||||
read -a ADDITIONAL_RUNFLAGS <<< "$RUNFLAGS"
|
||||
|
||||
RUNFLAGS=()
|
||||
|
||||
# shellcheck disable=SC2191
|
||||
RUNFLAGS+=( %RUNFLAGS% )
|
||||
|
||||
if [[ -n "$HOST_CONTAINER" ]]; then
|
||||
RUNFLAGS+=( --volumes-from "$HOST_CONTAINER" )
|
||||
fi
|
||||
|
||||
RUNFLAGS+=( --network "$NETWORK" )
|
||||
|
||||
if [[ -n "$CONTAINER_CGROUP_PARENT" ]]; then
|
||||
RUNFLAGS+=( --cgroup-parent "$CONTAINER_CGROUP_PARENT" )
|
||||
fi
|
||||
|
||||
RUNFLAGS+=( --workdir "$PWD" )
|
||||
|
||||
RUNCMD=( %RUNCMD% )
|
||||
|
||||
set -- "${RUNFLAGS[@]}" "${ADDITIONAL_RUNFLAGS[@]}" "$IMAGE" "${RUNCMD[@]}" "$@"
|
||||
|
||||
exec "$DOCKER" run "$@"
|
Loading…
Reference in New Issue
Block a user