fix docker build tags

This commit is contained in:
Nick Sweeting 2023-10-31 19:11:14 -07:00
parent 00d671240e
commit 7283e9b91d
3 changed files with 48 additions and 50 deletions

View file

@ -23,14 +23,14 @@ SUPPORTED_PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7"
TAG_NAME="${1:-$(git rev-parse --abbrev-ref HEAD)}" TAG_NAME="${1:-$(git rev-parse --abbrev-ref HEAD)}"
VERSION="$(jq -r '.version' < "$REPO_DIR/package.json")" VERSION="$(jq -r '.version' < "$REPO_DIR/package.json")"
SHORT_VERSION="$(echo "$VERSION" | perl -pe 's/(\d+)\.(\d+)\.(\d+)/$1.$2/g')" SHORT_VERSION="$(echo "$VERSION" | perl -pe 's/(\d+)\.(\d+)\.(\d+)/$1.$2/g')"
REQUIRED_PLATFORMS="${2:-$SUPPORTED_PLATFORMS}" SELECTED_PLATFORMS="${2:-$SUPPORTED_PLATFORMS}"
echo "[+] Building Docker image: tag=$TAG_NAME version=$SHORT_VERSION arch=$REQUIRED_PLATFORMS" echo "[+] Building Docker image: tag=$TAG_NAME version=$SHORT_VERSION arch=$SELECTED_PLATFORMS"
function check_platforms() { function check_platforms() {
INSTALLED_PLATFORMS="$(docker buildx inspect | grep 'Platforms:' )" INSTALLED_PLATFORMS="$(docker buildx inspect | grep 'Platforms:' )"
for REQUIRED_PLATFORM in ${REQUIRED_PLATFORMS//,/$IFS}; do for REQUIRED_PLATFORM in ${SELECTED_PLATFORMS//,/$IFS}; do
echo "[+] Checking for: $REQUIRED_PLATFORM..." echo "[+] Checking for: $REQUIRED_PLATFORM..."
if ! (echo "$INSTALLED_PLATFORMS" | grep -q "$REQUIRED_PLATFORM"); then if ! (echo "$INSTALLED_PLATFORMS" | grep -q "$REQUIRED_PLATFORM"); then
return 1 return 1
@ -48,11 +48,11 @@ function remove_builder() {
function create_builder() { function create_builder() {
docker buildx use xbuilder && return 0 docker buildx use xbuilder && return 0
echo "[+] Creating new xbuilder for: $REQUIRED_PLATFORMS" echo "[+] Creating new xbuilder for: $SELECTED_PLATFORMS"
echo echo
# Switch to buildx builder if already present / previously created # Switch to buildx builder if already present / previously created
docker buildx create --name xbuilder --driver docker-container --bootstrap --use --platform "$REQUIRED_PLATFORMS" || true docker buildx create --name xbuilder --driver docker-container --bootstrap --use --platform "$SELECTED_PLATFORMS" || true
docker buildx inspect --bootstrap || true docker buildx inspect --bootstrap || true
} }
@ -77,18 +77,18 @@ pdm export --group=':all' --production --without-hashes -o requirements.txt
echo "[+] Building archivebox:$VERSION docker image..." echo "[+] Building archivebox:$VERSION docker image..."
# docker builder prune # docker builder prune
# docker build . --no-cache -t archivebox-dev \ # docker build . --no-cache -t archivebox-dev \
docker buildx build --platform "$REQUIRED_PLATFORMS" --load . \ # replace --load with --push to deploy
-t archivebox \ docker buildx build --platform "$SELECTED_PLATFORMS" --load . \
-t archivebox:$TAG_NAME \ -t archivebox/archivebox \
-t archivebox:$VERSION \ -t archivebox/archivebox:$TAG_NAME \
-t archivebox:$SHORT_VERSION \ -t archivebox/archivebox:$VERSION \
-t archivebox:latest \ -t archivebox/archivebox:$SHORT_VERSION \
-t docker.io/nikisweeting/archivebox:$TAG_NAME \ -t archivebox/archivebox:latest \
-t docker.io/nikisweeting/archivebox:$VERSION \ -t nikisweeting/archivebox \
-t docker.io/nikisweeting/archivebox:$SHORT_VERSION \ -t nikisweeting/archivebox:$TAG_NAME \
-t docker.io/archivebox/archivebox:$TAG_NAME \ -t nikisweeting/archivebox:$VERSION \
-t docker.io/archivebox/archivebox:$VERSION \ -t nikisweeting/archivebox:$SHORT_VERSION \
-t docker.io/archivebox/archivebox:$SHORT_VERSION \ -t nikisweeting/archivebox:latest \
-t docker.pkg.github.com/archivebox/archivebox/archivebox:$TAG_NAME \ -t ghcr.io/archivebox/archivebox/archivebox:$TAG_NAME \
-t docker.pkg.github.com/archivebox/archivebox/archivebox:$VERSION \ -t ghcr.io/archivebox/archivebox/archivebox:$VERSION \
-t docker.pkg.github.com/archivebox/archivebox/archivebox:$SHORT_VERSION -t ghcr.io/archivebox/archivebox/archivebox:$SHORT_VERSION

56
package-lock.json generated
View file

@ -226,12 +226,12 @@
"integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA=="
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.8.7", "version": "20.8.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz",
"integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"undici-types": "~5.25.1" "undici-types": "~5.26.4"
} }
}, },
"node_modules/@types/yauzl": { "node_modules/@types/yauzl": {
@ -249,9 +249,9 @@
"integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.10.0", "version": "8.11.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
"integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@ -269,9 +269,9 @@
} }
}, },
"node_modules/acorn-walk": { "node_modules/acorn-walk": {
"version": "8.2.0", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==",
"engines": { "engines": {
"node": ">=0.4.0" "node": ">=0.4.0"
} }
@ -1793,9 +1793,9 @@
} }
}, },
"node_modules/punycode": { "node_modules/punycode": {
"version": "2.3.0", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -1855,8 +1855,8 @@
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
}, },
"node_modules/readability-extractor": { "node_modules/readability-extractor": {
"version": "0.0.8", "version": "0.0.9",
"resolved": "git+ssh://git@github.com/ArchiveBox/readability-extractor.git#fd0c971ea15c69338aad38871b5246fc474f6152", "resolved": "git+ssh://git@github.com/ArchiveBox/readability-extractor.git#e614ba08c4e024db75f8c746b8f4634f16ae2f50",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@mozilla/readability": "^0.4.4", "@mozilla/readability": "^0.4.4",
@ -1971,16 +1971,16 @@
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
}, },
"node_modules/single-file-cli": { "node_modules/single-file-cli": {
"version": "1.1.12", "version": "1.1.18",
"resolved": "https://registry.npmjs.org/single-file-cli/-/single-file-cli-1.1.12.tgz", "resolved": "https://registry.npmjs.org/single-file-cli/-/single-file-cli-1.1.18.tgz",
"integrity": "sha512-CTMqoCnHgB/duMU10SwA6v9uqG511GItVghLDTv1lTVa4JRwJ4qpsiz7KWXYQh5QyefQJHFVVxzSNWDVpNJC4w==", "integrity": "sha512-M60Mm385w2dvESNdGrFlrJoK3Cln011y8n3g3myRH7XQcuiuBQB2hVP1DDlpqOGRePDpayVFgDflSnRMMf0klQ==",
"dependencies": { "dependencies": {
"file-url": "3.0.0", "file-url": "3.0.0",
"iconv-lite": "0.6.3", "iconv-lite": "0.6.3",
"jsdom": "22.1.0", "jsdom": "22.1.0",
"puppeteer-core": "21.2.1", "puppeteer-core": "21.2.1",
"selenium-webdriver": "4.12.0", "selenium-webdriver": "4.12.0",
"single-file-core": "1.2.13", "single-file-core": "1.2.22",
"strong-data-uri": "1.0.6", "strong-data-uri": "1.0.6",
"yargs": "17.7.2" "yargs": "17.7.2"
}, },
@ -2064,9 +2064,9 @@
} }
}, },
"node_modules/single-file-core": { "node_modules/single-file-core": {
"version": "1.2.13", "version": "1.2.22",
"resolved": "https://registry.npmjs.org/single-file-core/-/single-file-core-1.2.13.tgz", "resolved": "https://registry.npmjs.org/single-file-core/-/single-file-core-1.2.22.tgz",
"integrity": "sha512-QO9wfaajBii670m5mmjslrpCxmK9gkiGUg3XSTLtG4YN9k7t6EAhSORpjg5N/DwZk0seEZqXTorPp6aN9c6lYA==" "integrity": "sha512-2XDxfZFWkUf391vx4R6FwIJcwTJKCBg+g8EKzp9a9ef8JZgomWeO4WwPhE7N9+aYBE15pzR9gcHRvVieI8/2FA=="
}, },
"node_modules/smart-buffer": { "node_modules/smart-buffer": {
"version": "4.2.0", "version": "4.2.0",
@ -2161,9 +2161,9 @@
} }
}, },
"node_modules/streamx": { "node_modules/streamx": {
"version": "2.15.1", "version": "2.15.2",
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.2.tgz",
"integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==", "integrity": "sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==",
"dependencies": { "dependencies": {
"fast-fifo": "^1.1.0", "fast-fifo": "^1.1.0",
"queue-tick": "^1.0.1" "queue-tick": "^1.0.1"
@ -2313,9 +2313,9 @@
} }
}, },
"node_modules/undici-types": { "node_modules/undici-types": {
"version": "5.25.3", "version": "5.26.5",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
"optional": true "optional": true
}, },
"node_modules/universalify": { "node_modules/universalify": {

View file

@ -13,7 +13,6 @@ decorator==5.1.1
django==3.1.14 django==3.1.14
django-auth-ldap==4.1.0 django-auth-ldap==4.1.0
django-extensions==3.1.5 django-extensions==3.1.5
exceptiongroup==1.1.3
executing==2.0.1 executing==2.0.1
idna==3.4 idna==3.4
ipython==8.17.2 ipython==8.17.2
@ -41,7 +40,6 @@ sonic-client==1.0.0
sqlparse==0.4.4 sqlparse==0.4.4
stack-data==0.6.3 stack-data==0.6.3
traitlets==5.13.0 traitlets==5.13.0
typing-extensions==4.8.0
tzlocal==5.2 tzlocal==5.2
urllib3==2.0.7 urllib3==2.0.7
w3lib==2.1.2 w3lib==2.1.2