From a77afc2d40dd51a889b43626956f71eb984c8127 Mon Sep 17 00:00:00 2001 From: David Personette Date: Sat, 11 Apr 2020 23:19:10 -0400 Subject: [PATCH] hooks/post_checkout, hooks/post_push, and multi-arch-manifest.yaml try to get multi-arch working more smoothly --- Dockerfile | 4 ---- Dockerfile.aarch64 | 4 ---- Dockerfile.armhf | 4 ---- hooks/post_checkout | 16 ++++++++++------ hooks/post_push | 6 ++++++ hooks/pre_build | 2 +- multi-arch-manifest.yaml | 16 ++++++++++++++++ samba.sh | 6 +++--- 8 files changed, 36 insertions(+), 22 deletions(-) create mode 100644 hooks/post_push create mode 100644 multi-arch-manifest.yaml diff --git a/Dockerfile b/Dockerfile index 336a8e0..8192d3d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,10 +50,6 @@ RUN apk --no-cache --no-progress upgrade && \ echo '' >>$file && \ echo ' # Time Machine' >>$file && \ echo ' fruit:delete_empty_adfiles = yes' >>$file && \ - echo ' fruit:metadata = stream' >>$file && \ - echo ' fruit:model = MacSamba' >>$file && \ - echo ' fruit:posix_rename = yes' >>$file && \ - echo ' fruit:resource = file' >>$file && \ echo ' fruit:time machine = yes' >>$file && \ echo ' fruit:veto_appledouble = no' >>$file && \ echo ' fruit:wipe_intentionally_left_blank_rfork = yes' >>$file && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 937dd1f..c54dbfe 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -51,10 +51,6 @@ RUN apk --no-cache --no-progress upgrade && \ echo '' >>$file && \ echo ' # Time Machine' >>$file && \ echo ' fruit:delete_empty_adfiles = yes' >>$file && \ - echo ' fruit:metadata = stream' >>$file && \ - echo ' fruit:model = MacSamba' >>$file && \ - echo ' fruit:posix_rename = yes' >>$file && \ - echo ' fruit:resource = file' >>$file && \ echo ' fruit:time machine = yes' >>$file && \ echo ' fruit:veto_appledouble = no' >>$file && \ echo ' fruit:wipe_intentionally_left_blank_rfork = yes' >>$file && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index dad8551..20fc69c 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -51,10 +51,6 @@ RUN apk --no-cache --no-progress upgrade && \ echo '' >>$file && \ echo ' # Time Machine' >>$file && \ echo ' fruit:delete_empty_adfiles = yes' >>$file && \ - echo ' fruit:metadata = stream' >>$file && \ - echo ' fruit:model = MacSamba' >>$file && \ - echo ' fruit:posix_rename = yes' >>$file && \ - echo ' fruit:resource = file' >>$file && \ echo ' fruit:time machine = yes' >>$file && \ echo ' fruit:veto_appledouble = no' >>$file && \ echo ' fruit:wipe_intentionally_left_blank_rfork = yes' >>$file && \ diff --git a/hooks/post_checkout b/hooks/post_checkout index c2b3115..a0e24de 100755 --- a/hooks/post_checkout +++ b/hooks/post_checkout @@ -1,14 +1,18 @@ #!/usr/bin/env bash -[[ "${DOCKER_TAG}" == "latest" ]] && \ +API="https://api.github.com/repos/estesp/manifest-tool/tags" +URL="https://github.com/estesp/manifest-tool/releases/download" +TAG=$(curl -Ls $API | awk -F'"' '/name.*v[0-9]/ {print $4; exit}') +curl -LSso manifest-tool "${URL}/${TAG}/manifest-tool-linux-amd64" +chmod +x manifest-tool + +[[ "${DOCKER_TAG}" == "amd64" ]] && \ { echo 'qemu-user-static: Download not required for this arch'; exit 0; } -TAGS_API="https://api.github.com/repos/multiarch/qemu-user-static/tags" +API="https://api.github.com/repos/multiarch/qemu-user-static/tags" URL="https://github.com/multiarch/qemu-user-static/releases/download" -LATEST_TAG=$(curl -Ls $TAGS_API | \ - awk -F'"' '/name.*v[0-9]/ {print $4; exit}') +TAG=$(curl -Ls $API | awk -F'"' '/name.*v[0-9]/ {print $4; exit}') ARCH=$([[ "${DOCKER_TAG}" == "armhf" ]] && \ echo "${DOCKER_TAG::-2}" || echo "${DOCKER_TAG}") -curl -Ls "${URL}/${LATEST_TAG}/x86_64_qemu-${ARCH}-static.tar.gz" | \ - tar xzv \ No newline at end of file +curl -LSs "${URL}/${TAG}/x86_64_qemu-${ARCH}-static.tar.gz" | tar xzv \ No newline at end of file diff --git a/hooks/post_push b/hooks/post_push new file mode 100644 index 0000000..3c767dd --- /dev/null +++ b/hooks/post_push @@ -0,0 +1,6 @@ +#!/bin/bash + +# Use manifest-tool to create the manifest, given the experimental +# "docker manifest" command isn't available yet on Docker Hub. + +./manifest-tool push from-spec multi-arch-manifest.yaml \ No newline at end of file diff --git a/hooks/pre_build b/hooks/pre_build index a1e3a26..bfd446c 100755 --- a/hooks/pre_build +++ b/hooks/pre_build @@ -1,6 +1,6 @@ #!/usr/bin/env bash -[[ "${DOCKER_TAG}" == "latest" ]] && \ +[[ "${DOCKER_TAG}" == "amd64" ]] && \ { echo 'qemu-user-static: Registration not required for this arch';exit 0; } docker run --rm --privileged multiarch/qemu-user-static:register --reset \ No newline at end of file diff --git a/multi-arch-manifest.yaml b/multi-arch-manifest.yaml new file mode 100644 index 0000000..24a9acf --- /dev/null +++ b/multi-arch-manifest.yaml @@ -0,0 +1,16 @@ +image: dperson/samba:latest +manifests: + - image: dperson/samba:amd64 + platform: + architecture: amd64 + os: linux + - image: dperson/samba:aarch64 + platform: + architecture: arm64 + os: linux + variant: v8 + - image: dperson/samba:armhf + platform: + architecture: arm + os: linux + variant: v6 \ No newline at end of file diff --git a/samba.sh b/samba.sh index 46d2608..be8019c 100755 --- a/samba.sh +++ b/samba.sh @@ -107,9 +107,9 @@ share() { local share="$1" path="$2" browsable="${3:-yes}" ro="${4:-yes}" \ echo " read only = $ro" >>$file echo " guest ok = $guest" >>$file [[ ${VETO:-yes} == no ]] || { - echo -n " veto files = /._*/.apdisk/.AppleDouble/.DS_Store/" >>$file - echo -n ".TemporaryItems/.Trashes/desktop.ini/ehthumbs.db/" >>$file - echo "Network Trash Folder/Temporary Items/Thumbs.db/" >>$file + echo -n " veto files = /.apdisk/.DS_Store/.TemporaryItems/" >>$file + echo -n ".Trashes/desktop.ini/ehthumbs.db/Network Trash Folder/" >>$file + echo "Temporary Items/Thumbs.db/" >>$file echo " delete veto files = yes" >>$file } [[ ${users:-""} && ! ${users:-""} == all ]] &&