Compare commits
4 Commits
04ec1f51d8
...
23615777b7
Author | SHA1 | Date | |
---|---|---|---|
|
23615777b7 | ||
|
f860eba8a2 | ||
|
a06e4e8f0a | ||
|
58a2f63bbe |
11
Dockerfile
11
Dockerfile
@ -1,10 +1,13 @@
|
||||
FROM registry.opensuse.org/opensuse/tumbleweed:latest
|
||||
|
||||
ARG VERSION
|
||||
FROM registry.opensuse.org/opensuse/tumbleweed:${VERSION}
|
||||
|
||||
|
||||
RUN zypper --non-interactive install \
|
||||
openssh-clients \
|
||||
restic-${VERSION} \
|
||||
restic \
|
||||
&& zypper clean -a
|
||||
ADD entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||
|
||||
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||
CMD ["start"]
|
||||
|
29
Makefile
29
Makefile
@ -1,13 +1,25 @@
|
||||
.PHONY: default build clean
|
||||
.PHONY: default build clean release require_clean_git
|
||||
|
||||
|
||||
-include .env
|
||||
|
||||
VERSION=0.15.1-1.2
|
||||
VERSION=20230411
|
||||
IMAGENAME=restic
|
||||
REPO=docker.io/bardak
|
||||
|
||||
SHELL := /bin/bash
|
||||
|
||||
guard:
|
||||
@ if [ -z "$(git status --porcelain)" ]; then echo "git repo not clean"; exit 1; fi
|
||||
require_clean_git:
|
||||
git update-index -q --ignore-submodules --refresh
|
||||
git diff-files --quiet --ignore-submodules
|
||||
git diff-index --cached --quiet --ignore-submodules HEAD --
|
||||
@status=$$(git status --porcelain); \
|
||||
if test "x$${status}" = x; then \
|
||||
echo "No untracked files detected"; \
|
||||
else \
|
||||
echo "Untracked files detected" >&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
default: build
|
||||
|
||||
@ -17,5 +29,10 @@ build:
|
||||
clean:
|
||||
podman image rm docker.io/bardak/restic:$(VERSION)
|
||||
|
||||
push: guard build
|
||||
podman push --creds $(USERNAME):$(PASSWORD) docker.io/bardak/restic:$(VERSION)
|
||||
release: require_clean_git build
|
||||
$(eval TMP_MESSAGE := $(shell podman run --rm -it ${REPO}/${IMAGENAME}:$(VERSION) /usr/bin/restic --version))
|
||||
git tag -a v$(VERSION) -m "${TMP_MESSAGE}"
|
||||
git push origin v$(VERSION)
|
||||
podman tag ${REPO}/${IMAGENAME}:$(VERSION) ${REPO}/${IMAGENAME}:latest
|
||||
podman push --creds $(USERNAME):$(PASSWORD) ${REPO}/${IMAGENAME}:$(VERSION)
|
||||
podman push --creds $(USERNAME):$(PASSWORD) ${REPO}/${IMAGENAME}:latest
|
||||
|
38
autobuild.sh
Executable file
38
autobuild.sh
Executable file
@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
set -aeou pipefail
|
||||
|
||||
BASE_IMAGE="registry.opensuse.org/opensuse/tumbleweed"
|
||||
PACKAGE_NAME="restic"
|
||||
|
||||
echo "Pulling latest tumbleweed"
|
||||
podman pull "${BASE_IMAGE}:latest"
|
||||
|
||||
CURRENT_TUMBLEWEED_TAG="$(sed -n 's/.*VERSION=\([0-9]\)/\1/p' Makefile)"
|
||||
LATEST_TUMBLEWEED_TAG="$(podman image inspect --format "{{.Labels}}" registry.opensuse.org/opensuse/tumbleweed:latest | sed -n 's/.*org\.opencontainers\.image\.version:\([0-9]\{8\}\).*/\1/p')"
|
||||
|
||||
if [[ "$CURRENT_TUMBLEWEED_TAG" == "$LATEST_TUMBLEWEED_TAG" ]]; then
|
||||
echo "Already running latest tumbleweed version"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "New tumbleweed image exists"
|
||||
CURRENT_VERSION="$(podman run --rm -it ${BASE_IMAGE}:${CURRENT_TUMBLEWEED_TAG} /usr/bin/bash -c "zypper ref > /dev/null && zypper info $PACKAGE_NAME | sed -n 's/.*Version : \(.*\)$/\1/p'")"
|
||||
LATEST_VERSION="$(podman run --rm -it ${BASE_IMAGE}:latest /usr/bin/bash -c "zypper ref > /dev/null && zypper info $PACKAGE_NAME | sed -n 's/.*Version : \(.*\)$/\1/p'")"
|
||||
|
||||
echo "current : $CURRENT_VERSION"
|
||||
echo "latest : $LATEST_VERSION"
|
||||
|
||||
if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
|
||||
echo "No new $PACKAGE_NAME version detected"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#Updateing Makefile with latest image tag
|
||||
sed -i 's/VERSION='"$CURRENT_TUMBLEWEED_TAG"'/VERSION='"$LATEST_TUMBLEWEED_TAG"'/' Makefile
|
||||
git add Makefile
|
||||
git commit -m "Updated tumpleweed image to $LATEST_TUMBLEWEED_TAG, $PACKAGE_NAME to $LATEST_VERSION"
|
||||
git push
|
||||
|
||||
echo "build and push new image"
|
||||
|
||||
make release
|
10
entrypoint.sh
Executable file → Normal file
10
entrypoint.sh
Executable file → Normal file
@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [[ "$1" == "bash" ]]; then
|
||||
exec /usr/bin/bash
|
||||
|
||||
if [[ "$1" == "start" ]]; then
|
||||
/usr/bin/restic "$@"
|
||||
else
|
||||
restic "$@"
|
||||
exec "$@"
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user