5 changed files with 93 additions and 81 deletions
@ -1,5 +1,5 @@ |
|||||||
# do not add .git, since it is needed to extract the tag |
# do not add .git, since it is needed to extract the tag |
||||||
# do not add /binaries, since they're needed by make dockerhub |
# do not add /tmp, since it is needed by make dockerhub |
||||||
/tmp |
/binaries |
||||||
/coverage*.txt |
/coverage*.txt |
||||||
/apidocs/*.html |
/apidocs/*.html |
||||||
|
@ -1,110 +1,111 @@ |
|||||||
|
REPOSITORY = aler9/rtsp-simple-server |
||||||
|
|
||||||
define DOCKERFILE_DOCKERHUB |
define DOCKERFILE_DOCKERHUB |
||||||
FROM scratch |
FROM scratch |
||||||
ARG BINARY |
ARG TARGETPLATFORM |
||||||
ADD $$BINARY / |
ADD tmp/binaries/$$TARGETPLATFORM.tar.gz / |
||||||
ENTRYPOINT [ "/mediamtx" ] |
ENTRYPOINT [ "/mediamtx" ] |
||||||
endef |
endef |
||||||
export DOCKERFILE_DOCKERHUB |
export DOCKERFILE_DOCKERHUB |
||||||
|
|
||||||
define DOCKERFILE_DOCKERHUB_RPI_32 |
define DOCKERFILE_DOCKERHUB_FFMPEG |
||||||
FROM $(RPI32_IMAGE) AS base |
FROM $(ALPINE_IMAGE) |
||||||
RUN apt update && apt install -y --no-install-recommends libcamera0 libfreetype6 |
RUN apk add --no-cache ffmpeg |
||||||
ARG BINARY |
ARG TARGETPLATFORM |
||||||
ADD $$BINARY / |
ADD tmp/binaries/$$TARGETPLATFORM.tar.gz / |
||||||
ENTRYPOINT [ "/mediamtx" ] |
ENTRYPOINT [ "/mediamtx" ] |
||||||
endef |
endef |
||||||
export DOCKERFILE_DOCKERHUB_RPI_32 |
export DOCKERFILE_DOCKERHUB_FFMPEG |
||||||
|
|
||||||
|
define DOCKERFILE_DOCKERHUB_RPI_BASE_32 |
||||||
|
FROM $(RPI32_IMAGE) |
||||||
|
endef |
||||||
|
export DOCKERFILE_DOCKERHUB_RPI_BASE_32 |
||||||
|
|
||||||
define DOCKERFILE_DOCKERHUB_RPI_64 |
define DOCKERFILE_DOCKERHUB_RPI_BASE_64 |
||||||
FROM $(RPI64_IMAGE) |
FROM $(RPI64_IMAGE) |
||||||
|
endef |
||||||
|
export DOCKERFILE_DOCKERHUB_RPI_BASE_64 |
||||||
|
|
||||||
|
define DOCKERFILE_DOCKERHUB_RPI |
||||||
|
FROM scratch |
||||||
|
ARG TARGETPLATFORM |
||||||
|
ADD tmp/rpi_base/$$TARGETPLATFORM.tar / |
||||||
RUN apt update && apt install -y --no-install-recommends libcamera0 libfreetype6 |
RUN apt update && apt install -y --no-install-recommends libcamera0 libfreetype6 |
||||||
ARG BINARY |
ADD tmp/binaries/$$TARGETPLATFORM.tar.gz / |
||||||
ADD $$BINARY / |
|
||||||
ENTRYPOINT [ "/mediamtx" ] |
ENTRYPOINT [ "/mediamtx" ] |
||||||
endef |
endef |
||||||
export DOCKERFILE_DOCKERHUB_RPI_64 |
export DOCKERFILE_DOCKERHUB_RPI |
||||||
|
|
||||||
|
define DOCKERFILE_DOCKERHUB_FFMPEG_RPI |
||||||
|
FROM scratch |
||||||
|
ARG TARGETPLATFORM |
||||||
|
ADD tmp/rpi_base/$$TARGETPLATFORM.tar / |
||||||
|
RUN apt update && apt install -y --no-install-recommends libcamera0 libfreetype6 ffmpeg |
||||||
|
ADD tmp/binaries/$$TARGETPLATFORM.tar.gz / |
||||||
|
ENTRYPOINT [ "/mediamtx" ] |
||||||
|
endef |
||||||
|
export DOCKERFILE_DOCKERHUB_FFMPEG_RPI |
||||||
|
|
||||||
dockerhub: |
dockerhub: |
||||||
$(eval export DOCKER_CLI_EXPERIMENTAL=enabled) |
$(eval VERSION := $(shell git describe --tags | tr -d v)) |
||||||
$(eval VERSION := $(shell git describe --tags)) |
|
||||||
|
|
||||||
docker login -u $(DOCKER_USER) -p $(DOCKER_PASSWORD) |
docker login -u $(DOCKER_USER) -p $(DOCKER_PASSWORD) |
||||||
|
|
||||||
|
rm -rf tmp |
||||||
|
mkdir -p tmp tmp/binaries/linux/arm tmp/rpi_base/linux/arm |
||||||
|
|
||||||
|
cp binaries/*linux_amd64.tar.gz tmp/binaries/linux/amd64.tar.gz |
||||||
|
cp binaries/*linux_armv6.tar.gz tmp/binaries/linux/arm/v6.tar.gz |
||||||
|
cp binaries/*linux_armv7.tar.gz tmp/binaries/linux/arm/v7.tar.gz |
||||||
|
cp binaries/*linux_arm64v8.tar.gz tmp/binaries/linux/arm64.tar.gz |
||||||
|
|
||||||
docker buildx rm builder 2>/dev/null || true |
docker buildx rm builder 2>/dev/null || true |
||||||
rm -rf $$HOME/.docker/manifests/* |
rm -rf $$HOME/.docker/manifests/* |
||||||
docker buildx create --name=builder --use |
docker buildx create --name=builder --use |
||||||
|
|
||||||
echo "$$DOCKERFILE_DOCKERHUB" | docker buildx build . -f - \
|
echo "$$DOCKERFILE_DOCKERHUB" | docker buildx build . -f - \
|
||||||
--provenance=false \
|
--provenance=false \
|
||||||
--platform=linux/amd64 \
|
--platform=linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 \
|
||||||
--build-arg BINARY="$$(echo binaries/*linux_amd64.tar.gz)" \
|
-t $(REPOSITORY):$(VERSION) \
|
||||||
-t aler9/rtsp-simple-server:$(VERSION)-amd64 \
|
-t $(REPOSITORY):latest \
|
||||||
-t aler9/rtsp-simple-server:latest-amd64 \
|
|
||||||
--push |
--push |
||||||
|
|
||||||
echo "$$DOCKERFILE_DOCKERHUB" | docker buildx build . -f - \
|
echo "$$DOCKERFILE_DOCKERHUB_FFMPEG" | docker buildx build . -f - \
|
||||||
--provenance=false \
|
--provenance=false \
|
||||||
--platform=linux/arm/v6 \
|
--platform=linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 \
|
||||||
--build-arg BINARY="$$(echo binaries/*linux_armv6.tar.gz)" \
|
-t $(REPOSITORY):$(VERSION)-ffmpeg \
|
||||||
-t aler9/rtsp-simple-server:$(VERSION)-armv6 \
|
-t $(REPOSITORY):latest-ffmpeg \
|
||||||
-t aler9/rtsp-simple-server:latest-armv6 \
|
|
||||||
--push |
--push |
||||||
|
|
||||||
echo "$$DOCKERFILE_DOCKERHUB_RPI_32" | docker buildx build . -f - \
|
echo "$$DOCKERFILE_DOCKERHUB_RPI_BASE_32" | docker buildx build . -f - \
|
||||||
--provenance=false \
|
--provenance=false \
|
||||||
--platform=linux/arm/v6 \
|
--platform=linux/arm/v6 \
|
||||||
--build-arg BINARY="$$(echo binaries/*linux_armv6.tar.gz)" \
|
--output type=tar,dest=tmp/rpi_base/linux/arm/v6.tar |
||||||
-t aler9/rtsp-simple-server:$(VERSION)-armv6-rpi \
|
|
||||||
-t aler9/rtsp-simple-server:latest-armv6-rpi \
|
|
||||||
--push |
|
||||||
|
|
||||||
echo "$$DOCKERFILE_DOCKERHUB" | docker buildx build . -f - \
|
echo "$$DOCKERFILE_DOCKERHUB_RPI_BASE_32" | docker buildx build . -f - \
|
||||||
--provenance=false \
|
--provenance=false \
|
||||||
--platform=linux/arm/v7 \
|
--platform=linux/arm/v7 \
|
||||||
--build-arg BINARY="$$(echo binaries/*linux_armv7.tar.gz)" \
|
--output type=tar,dest=tmp/rpi_base/linux/arm/v7.tar |
||||||
-t aler9/rtsp-simple-server:$(VERSION)-armv7 \
|
|
||||||
-t aler9/rtsp-simple-server:latest-armv7 \
|
|
||||||
--push |
|
||||||
|
|
||||||
echo "$$DOCKERFILE_DOCKERHUB_RPI_32" | docker buildx build . -f - \
|
echo "$$DOCKERFILE_DOCKERHUB_RPI_BASE_64" | docker buildx build . -f - \
|
||||||
--provenance=false \
|
--provenance=false \
|
||||||
--platform=linux/arm/v7 \
|
--platform=linux/arm64/v8 \
|
||||||
--build-arg BINARY="$$(echo binaries/*linux_armv7.tar.gz)" \
|
--output type=tar,dest=tmp/rpi_base/linux/arm64.tar |
||||||
-t aler9/rtsp-simple-server:$(VERSION)-armv7-rpi \
|
|
||||||
-t aler9/rtsp-simple-server:latest-armv7-rpi \
|
|
||||||
--push |
|
||||||
|
|
||||||
echo "$$DOCKERFILE_DOCKERHUB" | docker buildx build . -f - \
|
echo "$$DOCKERFILE_DOCKERHUB_RPI" | docker buildx build . -f - \
|
||||||
--provenance=false \
|
--provenance=false \
|
||||||
--platform=linux/arm64/v8 \
|
--platform=linux/arm/v6,linux/arm/v7,linux/arm64/v8 \
|
||||||
--build-arg BINARY="$$(echo binaries/*linux_arm64v8.tar.gz)" \
|
-t $(REPOSITORY):$(VERSION)-rpi \
|
||||||
-t aler9/rtsp-simple-server:$(VERSION)-arm64v8 \
|
-t $(REPOSITORY):latest-rpi \
|
||||||
-t aler9/rtsp-simple-server:latest-arm64v8 \
|
|
||||||
--push |
--push |
||||||
|
|
||||||
echo "$$DOCKERFILE_DOCKERHUB_RPI_64" | docker buildx build . -f - \
|
echo "$$DOCKERFILE_DOCKERHUB_FFMPEG_RPI" | docker buildx build . -f - \
|
||||||
--provenance=false \
|
--provenance=false \
|
||||||
--platform=linux/arm64/v8 \
|
--platform=linux/arm/v6,linux/arm/v7,linux/arm64/v8 \
|
||||||
--build-arg BINARY="$$(echo binaries/*linux_arm64v8.tar.gz)" \
|
-t $(REPOSITORY):$(VERSION)-ffmpeg-rpi \
|
||||||
-t aler9/rtsp-simple-server:$(VERSION)-arm64v8-rpi \
|
-t $(REPOSITORY):latest-ffmpeg-rpi \
|
||||||
-t aler9/rtsp-simple-server:latest-arm64v8-rpi \
|
|
||||||
--push |
--push |
||||||
|
|
||||||
docker manifest create aler9/rtsp-simple-server:$(VERSION)-rpi \
|
|
||||||
$(foreach ARCH,armv6 armv7 arm64v8,aler9/rtsp-simple-server:$(VERSION)-$(ARCH)-rpi) |
|
||||||
docker manifest push aler9/rtsp-simple-server:$(VERSION)-rpi |
|
||||||
|
|
||||||
docker manifest create aler9/rtsp-simple-server:$(VERSION) \
|
|
||||||
$(foreach ARCH,amd64 armv6 armv7 arm64v8,aler9/rtsp-simple-server:$(VERSION)-$(ARCH)) |
|
||||||
docker manifest push aler9/rtsp-simple-server:$(VERSION) |
|
||||||
|
|
||||||
docker manifest create aler9/rtsp-simple-server:latest-rpi \
|
|
||||||
$(foreach ARCH,armv6 armv7 arm64v8,aler9/rtsp-simple-server:$(VERSION)-$(ARCH)-rpi) |
|
||||||
docker manifest push aler9/rtsp-simple-server:latest-rpi |
|
||||||
|
|
||||||
docker manifest create aler9/rtsp-simple-server:latest \
|
|
||||||
$(foreach ARCH,amd64 armv6 armv7 arm64v8,aler9/rtsp-simple-server:$(VERSION)-$(ARCH)) |
|
||||||
docker manifest push aler9/rtsp-simple-server:latest |
|
||||||
|
|
||||||
docker buildx rm builder |
docker buildx rm builder |
||||||
rm -rf $$HOME/.docker/manifests/* |
rm -rf $$HOME/.docker/manifests/* |
||||||
|
Loading…
Reference in new issue