mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-09-27 04:36:12 +08:00
Use official python as base and add tini
This commit is contained in:
@@ -1,8 +0,0 @@
|
|||||||
.git/
|
|
||||||
assets/
|
|
||||||
examples/
|
|
||||||
|
|
||||||
.dockerignore
|
|
||||||
config.yaml
|
|
||||||
Dockerfile
|
|
||||||
README.md
|
|
28
Dockerfile
28
Dockerfile
@@ -1,12 +1,12 @@
|
|||||||
# https://github.com/hassio-addons/addon-base-python/releases
|
# https://hub.docker.com/_/python/tags?page=1&name=-alpine
|
||||||
ARG BASE_VERSION="9.0.1"
|
ARG PYTHON_VERSION="3.10.8"
|
||||||
# https://hub.docker.com/_/golang/tags?page=1&name=-alpine
|
# https://hub.docker.com/_/golang/tags?page=1&name=-alpine
|
||||||
ARG GO_VERSION="1.19.2"
|
ARG GO_VERSION="1.19.3"
|
||||||
# https://hub.docker.com/r/ngrok/ngrok/tags?page=1&name=-alpine
|
# https://hub.docker.com/r/ngrok/ngrok/tags?page=1&name=-alpine
|
||||||
ARG NGROK_VERSION="3.1.0"
|
ARG NGROK_VERSION="3.1.0"
|
||||||
|
|
||||||
|
|
||||||
FROM ghcr.io/hassio-addons/base-python:${BASE_VERSION} AS base
|
FROM python:${PYTHON_VERSION}-alpine AS base
|
||||||
|
|
||||||
|
|
||||||
FROM golang:${GO_VERSION}-alpine AS go
|
FROM golang:${GO_VERSION}-alpine AS go
|
||||||
@@ -20,8 +20,15 @@ FROM go AS build
|
|||||||
|
|
||||||
WORKDIR /workspace
|
WORKDIR /workspace
|
||||||
|
|
||||||
COPY . .
|
# Cache dependencies
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# Build binary
|
||||||
|
COPY cmd cmd
|
||||||
|
COPY pkg pkg
|
||||||
|
COPY www www
|
||||||
|
COPY main.go .
|
||||||
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -trimpath
|
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -trimpath
|
||||||
|
|
||||||
|
|
||||||
@@ -30,13 +37,16 @@ FROM scratch AS rootfs
|
|||||||
|
|
||||||
COPY --from=build /workspace/go2rtc /usr/local/bin/
|
COPY --from=build /workspace/go2rtc /usr/local/bin/
|
||||||
COPY --from=ngrok /bin/ngrok /usr/local/bin/
|
COPY --from=ngrok /bin/ngrok /usr/local/bin/
|
||||||
COPY ./docker/rootfs/ /
|
COPY ./docker/run.sh /run.sh
|
||||||
|
|
||||||
|
|
||||||
# Final stage
|
# Final image
|
||||||
FROM base
|
FROM base
|
||||||
|
|
||||||
# Install ffmpeg
|
RUN apk add --no-cache bash tini ffmpeg
|
||||||
RUN apk add --no-cache ffmpeg
|
|
||||||
|
|
||||||
COPY --from=rootfs / /
|
COPY --from=rootfs / /
|
||||||
|
|
||||||
|
ENTRYPOINT ["/sbin/tini", "--"]
|
||||||
|
|
||||||
|
CMD ["/run.sh"]
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
#!/command/with-contenv bashio
|
|
||||||
# ==============================================================================
|
|
||||||
# Take down the S6 supervision tree when go2rtc fails
|
|
||||||
# ==============================================================================
|
|
||||||
# shellcheck shell=bash
|
|
||||||
|
|
||||||
if [[ "${1}" -ne 0 ]] && [[ "${1}" -ne 256 ]]; then
|
|
||||||
bashio::log.warning "go2rtc crashed, halting add-on"
|
|
||||||
/run/s6/basedir/bin/halt
|
|
||||||
fi
|
|
||||||
|
|
||||||
bashio::log.info "go2rtc stopped, restarting..."
|
|
@@ -1,23 +0,0 @@
|
|||||||
#!/command/with-contenv bashio
|
|
||||||
# ==============================================================================
|
|
||||||
# Runs go2rtc
|
|
||||||
# ==============================================================================
|
|
||||||
# shellcheck shell=bash
|
|
||||||
|
|
||||||
bashio::log.info 'Starting go2rtc...'
|
|
||||||
|
|
||||||
declare config_path
|
|
||||||
declare binary_path
|
|
||||||
|
|
||||||
config_path="/config"
|
|
||||||
|
|
||||||
binary_path="/usr/local/bin/go2rtc"
|
|
||||||
if [[ -x "${config_path}/go2rtc" ]]; then
|
|
||||||
binary_path="${config_path}/go2rtc"
|
|
||||||
bashio::log.warning "Using go2rtc binary from '${binary_path}'"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# set cwd for go2rtc (for config file, Hass integration, etc)
|
|
||||||
cd "${config_path}" || bashio::exit.nok "Could not change working directory"
|
|
||||||
|
|
||||||
exec "${binary_path}"
|
|
20
docker/run.sh
Executable file
20
docker/run.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ==============================================================================
|
||||||
|
# Runs go2rtc
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
echo 'Starting go2rtc...' >&2
|
||||||
|
|
||||||
|
readonly config_path="/config"
|
||||||
|
|
||||||
|
if [[ -x "${config_path}/go2rtc" ]]; then
|
||||||
|
readonly binary_path="${config_path}/go2rtc"
|
||||||
|
echo "Using go2rtc binary from '${binary_path}' instead of the embedded one" >&2
|
||||||
|
else
|
||||||
|
readonly binary_path="/usr/local/bin/go2rtc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set cwd for go2rtc (for config file, Hass integration, etc)
|
||||||
|
cd "${config_path}" || echo "Could not change working directory to '${config_path}'" >&2
|
||||||
|
|
||||||
|
exec "${binary_path}"
|
Reference in New Issue
Block a user