Reduce docker container size and add python inside
This commit is contained in:
+23
-6
@@ -1,23 +1,40 @@
|
|||||||
ARG BUILD_FROM
|
ARG BUILD_FROM
|
||||||
FROM $BUILD_FROM
|
|
||||||
|
|
||||||
RUN apk add --no-cache git go ffmpeg
|
FROM $BUILD_FROM as build
|
||||||
|
|
||||||
ARG BUILD_ARCH
|
# 1. Build go2rtc
|
||||||
|
RUN apk add --no-cache git go
|
||||||
|
|
||||||
RUN git clone https://github.com/AlexxIT/go2rtc \
|
RUN git clone https://github.com/AlexxIT/go2rtc \
|
||||||
&& cd go2rtc \
|
&& cd go2rtc \
|
||||||
&& CGO_ENABLED=0 go build -ldflags "-s -w" -trimpath -o /usr/local/bin
|
&& CGO_ENABLED=0 go build -ldflags "-s -w" -trimpath
|
||||||
|
|
||||||
|
# 2. Download ngrok
|
||||||
|
ARG BUILD_ARCH
|
||||||
|
|
||||||
# https://github.com/home-assistant/docker-base/blob/master/alpine/Dockerfile
|
# https://github.com/home-assistant/docker-base/blob/master/alpine/Dockerfile
|
||||||
RUN if [ "${BUILD_ARCH}" = "aarch64" ]; then BUILD_ARCH="arm64"; \
|
RUN if [ "${BUILD_ARCH}" = "aarch64" ]; then BUILD_ARCH="arm64"; \
|
||||||
elif [ "${BUILD_ARCH}" = "armv7" ]; then BUILD_ARCH="arm"; fi \
|
elif [ "${BUILD_ARCH}" = "armv7" ]; then BUILD_ARCH="arm"; fi \
|
||||||
&& cd go2rtc \
|
&& cd go2rtc \
|
||||||
&& curl $(curl -s "https://raw.githubusercontent.com/ngrok/docker-ngrok/main/releases.json" | jq -r ".${BUILD_ARCH}.url") -o ngrok.zip \
|
&& curl $(curl -s "https://raw.githubusercontent.com/ngrok/docker-ngrok/main/releases.json" | jq -r ".${BUILD_ARCH}.url") -o ngrok.zip \
|
||||||
&& unzip ngrok -d /usr/local/bin
|
&& unzip ngrok
|
||||||
|
|
||||||
RUN rm -r /go2rtc
|
|
||||||
|
|
||||||
|
|
||||||
|
# https://devopscube.com/reduce-docker-image-size/
|
||||||
|
FROM $BUILD_FROM
|
||||||
|
|
||||||
|
# 3. Copy go2rtc and ngrok to release
|
||||||
|
COPY --from=build /go2rtc/go2rtc /usr/local/bin
|
||||||
|
COPY --from=build /go2rtc/ngrok /usr/local/bin
|
||||||
|
|
||||||
|
# 4. Install ffmpeg
|
||||||
|
# apk base OK: 22 MiB in 40 packages
|
||||||
|
# ffmpeg OK: 113 MiB in 110 packages
|
||||||
|
# python3 OK: 161 MiB in 114 packages
|
||||||
|
RUN apk add --no-cache ffmpeg python3
|
||||||
|
|
||||||
|
# 5. Copy run to release
|
||||||
COPY run.sh /
|
COPY run.sh /
|
||||||
RUN chmod a+x /run.sh
|
RUN chmod a+x /run.sh
|
||||||
|
|
||||||
|
|||||||
+3
-13
@@ -2,23 +2,13 @@
|
|||||||
|
|
||||||
set +e
|
set +e
|
||||||
|
|
||||||
# add the feature for update to any version
|
# set cwd for go2rtc (for config file, Hass integration, etc)
|
||||||
if [ -f "/config/go2rtc.version" ]; then
|
|
||||||
branch=`cat /config/go2rtc.version`
|
|
||||||
echo "Update to version $branch"
|
|
||||||
git clone --depth 1 --branch "$branch" https://github.com/AlexxIT/go2rtc \
|
|
||||||
&& cd go2rtc \
|
|
||||||
&& CGO_ENABLED=0 go build -ldflags "-s -w" -trimpath -o /usr/local/bin \
|
|
||||||
&& rm -r /go2rtc && rm /config/go2rtc.version
|
|
||||||
fi
|
|
||||||
|
|
||||||
# set cwd for go2rtc (for config file, Hass itegration, etc)
|
|
||||||
cd /config
|
cd /config
|
||||||
|
|
||||||
# add the feature to override go2rtc binary from Hass config folder
|
# add the feature to override go2rtc binary from Hass config folder
|
||||||
export PATH="/config:$PATH"
|
export PATH="/config:$PATH"
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
go2rtc
|
go2rtc
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
Reference in New Issue
Block a user