diff --git a/bin/build_docker.sh b/bin/build_docker.sh index bcaacbb8..c88ed54c 100755 --- a/bin/build_docker.sh +++ b/bin/build_docker.sh @@ -23,14 +23,14 @@ SUPPORTED_PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7" TAG_NAME="${1:-$(git rev-parse --abbrev-ref HEAD)}" VERSION="$(jq -r '.version' < "$REPO_DIR/package.json")" 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() { 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..." if ! (echo "$INSTALLED_PLATFORMS" | grep -q "$REQUIRED_PLATFORM"); then return 1 @@ -48,11 +48,11 @@ function remove_builder() { function create_builder() { docker buildx use xbuilder && return 0 - echo "[+] Creating new xbuilder for: $REQUIRED_PLATFORMS" + echo "[+] Creating new xbuilder for: $SELECTED_PLATFORMS" echo # 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 } @@ -77,18 +77,18 @@ pdm export --group=':all' --production --without-hashes -o requirements.txt echo "[+] Building archivebox:$VERSION docker image..." # docker builder prune # docker build . --no-cache -t archivebox-dev \ -docker buildx build --platform "$REQUIRED_PLATFORMS" --load . \ - -t archivebox \ - -t archivebox:$TAG_NAME \ - -t archivebox:$VERSION \ - -t archivebox:$SHORT_VERSION \ - -t archivebox:latest \ - -t docker.io/nikisweeting/archivebox:$TAG_NAME \ - -t docker.io/nikisweeting/archivebox:$VERSION \ - -t docker.io/nikisweeting/archivebox:$SHORT_VERSION \ - -t docker.io/archivebox/archivebox:$TAG_NAME \ - -t docker.io/archivebox/archivebox:$VERSION \ - -t docker.io/archivebox/archivebox:$SHORT_VERSION \ - -t docker.pkg.github.com/archivebox/archivebox/archivebox:$TAG_NAME \ - -t docker.pkg.github.com/archivebox/archivebox/archivebox:$VERSION \ - -t docker.pkg.github.com/archivebox/archivebox/archivebox:$SHORT_VERSION +# replace --load with --push to deploy +docker buildx build --platform "$SELECTED_PLATFORMS" --load . \ + -t archivebox/archivebox \ + -t archivebox/archivebox:$TAG_NAME \ + -t archivebox/archivebox:$VERSION \ + -t archivebox/archivebox:$SHORT_VERSION \ + -t archivebox/archivebox:latest \ + -t nikisweeting/archivebox \ + -t nikisweeting/archivebox:$TAG_NAME \ + -t nikisweeting/archivebox:$VERSION \ + -t nikisweeting/archivebox:$SHORT_VERSION \ + -t nikisweeting/archivebox:latest \ + -t ghcr.io/archivebox/archivebox/archivebox:$TAG_NAME \ + -t ghcr.io/archivebox/archivebox/archivebox:$VERSION \ + -t ghcr.io/archivebox/archivebox/archivebox:$SHORT_VERSION diff --git a/package-lock.json b/package-lock.json index 484fc4e7..a4d3dc21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -226,12 +226,12 @@ "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" }, "node_modules/@types/node": { - "version": "20.8.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", - "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", + "version": "20.8.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", + "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", "optional": true, "dependencies": { - "undici-types": "~5.25.1" + "undici-types": "~5.26.4" } }, "node_modules/@types/yauzl": { @@ -249,9 +249,9 @@ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "bin": { "acorn": "bin/acorn" }, @@ -269,9 +269,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", "engines": { "node": ">=0.4.0" } @@ -1793,9 +1793,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -1855,8 +1855,8 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" }, "node_modules/readability-extractor": { - "version": "0.0.8", - "resolved": "git+ssh://git@github.com/ArchiveBox/readability-extractor.git#fd0c971ea15c69338aad38871b5246fc474f6152", + "version": "0.0.9", + "resolved": "git+ssh://git@github.com/ArchiveBox/readability-extractor.git#e614ba08c4e024db75f8c746b8f4634f16ae2f50", "license": "MIT", "dependencies": { "@mozilla/readability": "^0.4.4", @@ -1971,16 +1971,16 @@ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, "node_modules/single-file-cli": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/single-file-cli/-/single-file-cli-1.1.12.tgz", - "integrity": "sha512-CTMqoCnHgB/duMU10SwA6v9uqG511GItVghLDTv1lTVa4JRwJ4qpsiz7KWXYQh5QyefQJHFVVxzSNWDVpNJC4w==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/single-file-cli/-/single-file-cli-1.1.18.tgz", + "integrity": "sha512-M60Mm385w2dvESNdGrFlrJoK3Cln011y8n3g3myRH7XQcuiuBQB2hVP1DDlpqOGRePDpayVFgDflSnRMMf0klQ==", "dependencies": { "file-url": "3.0.0", "iconv-lite": "0.6.3", "jsdom": "22.1.0", "puppeteer-core": "21.2.1", "selenium-webdriver": "4.12.0", - "single-file-core": "1.2.13", + "single-file-core": "1.2.22", "strong-data-uri": "1.0.6", "yargs": "17.7.2" }, @@ -2064,9 +2064,9 @@ } }, "node_modules/single-file-core": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/single-file-core/-/single-file-core-1.2.13.tgz", - "integrity": "sha512-QO9wfaajBii670m5mmjslrpCxmK9gkiGUg3XSTLtG4YN9k7t6EAhSORpjg5N/DwZk0seEZqXTorPp6aN9c6lYA==" + "version": "1.2.22", + "resolved": "https://registry.npmjs.org/single-file-core/-/single-file-core-1.2.22.tgz", + "integrity": "sha512-2XDxfZFWkUf391vx4R6FwIJcwTJKCBg+g8EKzp9a9ef8JZgomWeO4WwPhE7N9+aYBE15pzR9gcHRvVieI8/2FA==" }, "node_modules/smart-buffer": { "version": "4.2.0", @@ -2161,9 +2161,9 @@ } }, "node_modules/streamx": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", - "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==", + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.2.tgz", + "integrity": "sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" @@ -2313,9 +2313,9 @@ } }, "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "optional": true }, "node_modules/universalify": { diff --git a/requirements.txt b/requirements.txt index 4447c0a5..f1dacefa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,6 @@ decorator==5.1.1 django==3.1.14 django-auth-ldap==4.1.0 django-extensions==3.1.5 -exceptiongroup==1.1.3 executing==2.0.1 idna==3.4 ipython==8.17.2 @@ -41,7 +40,6 @@ sonic-client==1.0.0 sqlparse==0.4.4 stack-data==0.6.3 traitlets==5.13.0 -typing-extensions==4.8.0 tzlocal==5.2 urllib3==2.0.7 w3lib==2.1.2