Browse Source

added makefile to support image building, pushing & tagging

https://github.com/fphammerle/docker-onion-service/blob/3e418cf3a801c56a783f77a2b15da30c1dc91b08/Makefile
Fabian Peter Hammerle 3 years ago
parent
commit
9ac477ac89
3 changed files with 25 additions and 5 deletions
  1. 0 3
      CHANGELOG.md
  2. 1 2
      Dockerfile
  3. 24 0
      Makefile

+ 0 - 3
CHANGELOG.md

@@ -5,9 +5,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
 ## [1.0.0] - 2020-07-24
-### Changed
-- upgrade base image from alpine v3.8 to v3.12
-
 ### Fixed
 - empty passwords (redundant as sshd config disables password authentication)
 - pin package versions

+ 1 - 2
Dockerfile

@@ -1,11 +1,10 @@
 FROM alpine:3.12
 
 ARG RSYNC_PACKAGE_VERSION=3.1.3-r3
-ARG RRSYNC_PACKAGE_VERSION=3.1.3-r3
 ARG OPENSSH_SERVER_PACKAGE_VERSION=8.3_p1-r0
 RUN apk add --no-cache \
     openssh-server=$OPENSSH_SERVER_PACKAGE_VERSION \
-    rrsync=$RRSYNC_PACKAGE_VERSION \
+    rrsync=$RSYNC_PACKAGE_VERSION \
     rsync=$RSYNC_PACKAGE_VERSION
 
 ENV SSHD_HOST_KEYS_DIR /etc/ssh/host_keys

+ 24 - 0
Makefile

@@ -0,0 +1,24 @@
+# sync with https://github.com/fphammerle/docker-onion-service/blob/master/Makefile
+
+DOCKER_IMAGE_NAME := docker.io/fphammerle/rsync-ssh
+DOCKER_TAG_VERSION := $(shell git describe --match=v* --abbrev=0 --dirty | sed -e 's/^v//')
+OPENSSH_SERVER_PACKAGE_VERSION := $(shell grep -Po 'OPENSSH_SERVER_PACKAGE_VERSION=\K.+' Dockerfile | tr -d -)
+RSYNC_PACKAGE_VERSION := $(shell grep -Po 'RSYNC_PACKAGE_VERSION=\K.+' Dockerfile | tr -d -)
+ARCH := $(shell arch)
+DOCKER_TAG_ARCH_SUFFIX_aarch64 := arm64
+DOCKER_TAG_ARCH_SUFFIX_armv6l := armv6
+DOCKER_TAG_ARCH_SUFFIX_armv7l := armv7
+DOCKER_TAG_ARCH_SUFFIX_x86_64 := amd64
+DOCKER_TAG_ARCH_SUFFIX = ${DOCKER_TAG_ARCH_SUFFIX_${ARCH}}
+DOCKER_TAG = ${DOCKER_TAG_VERSION}-openssh${OPENSSH_SERVER_PACKAGE_VERSION}-rsync${RSYNC_PACKAGE_VERSION}-${DOCKER_TAG_ARCH_SUFFIX}
+
+.PHONY: docker-build docker-push
+
+docker-build:
+	git diff --exit-code
+	git diff --staged --exit-code
+	sudo docker build -t "${DOCKER_IMAGE_NAME}:${DOCKER_TAG}" .
+
+docker-push: docker-build
+	sudo docker push "${DOCKER_IMAGE_NAME}:${DOCKER_TAG}"
+	@echo git tag --sign --message '$(shell sudo docker image inspect --format '{{join .RepoDigests "\n"}}' "${DOCKER_IMAGE_NAME}:${DOCKER_TAG}")' docker/${DOCKER_TAG} $(shell git rev-parse HEAD)