diff --git a/base/Dockerfile b/base/Dockerfile new file mode 100644 index 00000000..2df12c76 --- /dev/null +++ b/base/Dockerfile @@ -0,0 +1,14 @@ +FROM amazonlinux:2023 + +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin \ + PIPX_BIN_DIR=/usr/local/bin \ + PIPX_HOME=/usr/local/pipx + +RUN chown root:root /tmp && \ + chmod 1777 /tmp && \ + yum install -y glibc-langpack-en && \ + yum groupinstall -y development && \ + yum install -y which clang cmake python-devel python3-devel docker && \ + python3 -m ensurepip && \ + yum clean all && \ + pip3 install pipx --no-cache-dir diff --git a/base/base-2-arm64/Dockerfile b/base/base-2-arm64/Dockerfile deleted file mode 100644 index 3c57ee3f..00000000 --- a/base/base-2-arm64/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -# Docker doesn't support unpacking from remote URLs with ADD, -# and we don't want to 'docker import' because we can't squash into a small layer -# So this is expected to be downloaded from https://docker-lambda.s3.amazonaws.com/fs/base-2-arm64.tgz -ADD ./base-2-arm64.tgz /opt/ - -RUN yum --installroot=/opt install -y glibc-2.26-63.amzn2.aarch64 glibc-common-2.26-63.amzn2.aarch64 openssl-libs-1.0.2k-24.amzn2.0.7.aarch64 libicu-50.2-4.amzn2.aarch64 && \ - yum --installroot=/opt reinstall -y filesystem-3.2-25.amzn2.0.4.aarch64 setup-2.8.71-10.amzn2.0.1.noarch && \ - yum --installroot=/opt clean all - -FROM scratch - -COPY --from=0 /opt / - -ENV PATH=/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin \ - LD_LIBRARY_PATH=/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib \ - LANG=en_US.UTF-8 \ - TZ=:UTC \ - LAMBDA_TASK_ROOT=/var/task \ - LAMBDA_RUNTIME_DIR=/var/runtime \ - _LAMBDA_CONTROL_SOCKET=14 \ - _LAMBDA_SHARED_MEM_FD=11 \ - _LAMBDA_LOG_FD=9 \ - _LAMBDA_SB_ID=7 \ - _LAMBDA_CONSOLE_SOCKET=16 \ - _LAMBDA_RUNTIME_LOAD_TIME=1369872406543 \ - _AWS_XRAY_DAEMON_ADDRESS=169.254.79.2 \ - _AWS_XRAY_DAEMON_PORT=2000 \ - AWS_XRAY_DAEMON_ADDRESS=169.254.79.2:2000 \ - AWS_XRAY_CONTEXT_MISSING=LOG_ERROR \ - _X_AMZN_TRACE_ID='Root=1-dc99d00f-c079a84d433534434534ef0d;Parent=91ed514f1e5c03b2;Sampled=1' - -RUN chown sbx_user1051:495 /tmp && \ - chmod 700 /tmp - -WORKDIR /var/task diff --git a/base/base-2-arm64/amazonlinux2.txt b/base/base-2-arm64/amazonlinux2.txt deleted file mode 100644 index 43ef8db5..00000000 --- a/base/base-2-arm64/amazonlinux2.txt +++ /dev/null @@ -1,104 +0,0 @@ -amazon-linux-extras-2.0.1-1.amzn2.noarch -basesystem-10.0-7.amzn2.0.1.noarch -bash-4.2.46-34.amzn2.aarch64 -bzip2-libs-1.0.6-13.amzn2.0.3.aarch64 -ca-certificates-2021.2.50-72.amzn2.0.7.noarch -chkconfig-1.7.4-1.amzn2.0.2.aarch64 -coreutils-8.22-24.amzn2.aarch64 -cpio-2.12-11.amzn2.aarch64 -curl-8.0.1-1.amzn2.0.1.aarch64 -cyrus-sasl-lib-2.1.26-24.amzn2.aarch64 -diffutils-3.3-5.amzn2.aarch64 -elfutils-libelf-0.176-2.amzn2.aarch64 -expat-2.1.0-15.amzn2.0.2.aarch64 -file-libs-5.11-36.amzn2.0.1.aarch64 -filesystem-3.2-25.amzn2.0.4.aarch64 -findutils-4.5.11-6.amzn2.aarch64 -gawk-4.0.2-4.amzn2.1.2.aarch64 -gdbm-1.13-6.amzn2.0.2.aarch64 -glib2-2.56.1-9.amzn2.0.6.aarch64 -glibc-2.26-63.amzn2.aarch64 -glibc-common-2.26-63.amzn2.aarch64 -glibc-langpack-en-2.26-63.amzn2.aarch64 -glibc-minimal-langpack-2.26-63.amzn2.aarch64 -gmp-6.0.0-15.amzn2.0.2.aarch64 -gnupg2-2.0.22-5.amzn2.0.5.aarch64 -gpgme-1.3.2-5.amzn2.0.2.aarch64 -grep-2.20-3.amzn2.0.2.aarch64 -info-5.1-5.amzn2.aarch64 -keyutils-libs-1.5.8-3.amzn2.0.2.aarch64 -krb5-libs-1.15.1-55.amzn2.2.5.aarch64 -libacl-2.2.51-14.amzn2.aarch64 -libassuan-2.1.0-3.amzn2.0.2.aarch64 -libattr-2.4.46-12.amzn2.0.2.aarch64 -libblkid-2.30.2-2.amzn2.0.11.aarch64 -libcap-2.54-1.amzn2.0.2.aarch64 -libcom_err-1.42.9-19.amzn2.0.1.aarch64 -libcrypt-2.26-63.amzn2.aarch64 -libcurl-8.0.1-1.amzn2.0.1.aarch64 -libdb-5.3.21-24.amzn2.0.4.aarch64 -libdb-utils-5.3.21-24.amzn2.0.4.aarch64 -libffi-3.0.13-18.amzn2.0.2.aarch64 -libgcc-7.3.1-15.amzn2.aarch64 -libgcrypt-1.5.3-14.amzn2.0.3.aarch64 -libgpg-error-1.12-3.amzn2.0.3.aarch64 -libidn2-2.3.0-1.amzn2.aarch64 -libmetalink-0.1.3-13.amzn2.aarch64 -libmount-2.30.2-2.amzn2.0.11.aarch64 -libnghttp2-1.41.0-1.amzn2.aarch64 -libselinux-2.5-12.amzn2.0.2.aarch64 -libsepol-2.5-8.1.amzn2.0.2.aarch64 -libssh2-1.4.3-12.amzn2.2.4.aarch64 -libstdc++-7.3.1-15.amzn2.aarch64 -libtasn1-4.10-1.amzn2.0.3.aarch64 -libunistring-0.9.3-9.amzn2.0.2.aarch64 -libuuid-2.30.2-2.amzn2.0.11.aarch64 -libverto-0.2.5-4.amzn2.0.2.aarch64 -libxml2-2.9.1-6.amzn2.5.8.aarch64 -lua-5.1.4-15.amzn2.0.2.aarch64 -ncurses-6.0-8.20170212.amzn2.1.5.aarch64 -ncurses-base-6.0-8.20170212.amzn2.1.5.noarch -ncurses-libs-6.0-8.20170212.amzn2.1.5.aarch64 -nspr-4.34.0-3.1.amzn2.aarch64 -nss-3.79.0-4.amzn2.0.1.aarch64 -nss-pem-1.0.3-5.amzn2.aarch64 -nss-softokn-3.79.0-4.amzn2.aarch64 -nss-softokn-freebl-3.79.0-4.amzn2.aarch64 -nss-sysinit-3.79.0-4.amzn2.0.1.aarch64 -nss-tools-3.79.0-4.amzn2.0.1.aarch64 -nss-util-3.79.0-1.amzn2.aarch64 -openldap-2.4.44-25.amzn2.0.6.aarch64 -openssl-libs-1.0.2k-24.amzn2.0.7.aarch64 -p11-kit-0.23.22-1.amzn2.0.1.aarch64 -p11-kit-trust-0.23.22-1.amzn2.0.1.aarch64 -pcre-8.32-17.amzn2.0.3.aarch64 -pinentry-0.8.1-17.amzn2.0.2.aarch64 -popt-1.13-16.amzn2.0.2.aarch64 -pth-2.0.7-23.amzn2.0.2.aarch64 -pygpgme-0.3-9.amzn2.0.3.aarch64 -pyliblzma-0.5.3-25.amzn2.aarch64 -python-2.7.18-1.amzn2.0.6.aarch64 -python-iniparse-0.4-9.amzn2.noarch -python-libs-2.7.18-1.amzn2.0.6.aarch64 -python-pycurl-7.19.0-19.amzn2.0.2.aarch64 -python-urlgrabber-3.10-9.amzn2.0.1.noarch -python2-rpm-4.11.3-48.amzn2.0.3.aarch64 -pyxattr-0.5.1-5.amzn2.0.2.aarch64 -readline-6.2-10.amzn2.0.2.aarch64 -rpm-4.11.3-48.amzn2.0.3.aarch64 -rpm-build-libs-4.11.3-48.amzn2.0.3.aarch64 -rpm-libs-4.11.3-48.amzn2.0.3.aarch64 -sed-4.2.2-5.amzn2.0.2.aarch64 -setup-2.8.71-10.amzn2.0.1.noarch -shared-mime-info-1.8-4.amzn2.aarch64 -sqlite-3.7.17-8.amzn2.1.2.aarch64 -system-release-2-14.amzn2.aarch64 -tzdata-2023c-1.amzn2.0.1.noarch -vim-data-9.0.1592-1.amzn2.0.1.noarch -vim-minimal-9.0.1592-1.amzn2.0.1.aarch64 -xz-libs-5.2.2-1.amzn2.0.3.aarch64 -yum-3.4.3-158.amzn2.0.6.noarch -yum-metadata-parser-1.1.4-10.amzn2.0.2.aarch64 -yum-plugin-ovl-1.1.31-46.amzn2.0.1.noarch -yum-plugin-priorities-1.1.31-46.amzn2.0.1.noarch -zlib-1.2.7-19.amzn2.0.2.aarch64 diff --git a/base/base-2-arm64/build.sh b/base/base-2-arm64/build.sh deleted file mode 100755 index d2d2bb3e..00000000 --- a/base/base-2-arm64/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -curl -O https://docker-lambda.s3.amazonaws.com/fs/base-2-arm64.tgz - -set -euxo pipefail - -docker build --progress plain --no-cache --platform linux/arm64 --squash -t mlupin/lambda-base-2:arm64 . - -rm ./base-2-arm64.tgz diff --git a/base/base-2-arm64/dump-packages.sh b/base/base-2-arm64/dump-packages.sh deleted file mode 100755 index 5b546bf9..00000000 --- a/base/base-2-arm64/dump-packages.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -curl https://docker-lambda.s3.amazonaws.com/fs/base-2-arm64.tgz | tar -xz --strip-components=2 -- var/lib/rpm - -docker pull arm64v8/amazonlinux:2 -docker run -v "$PWD/rpm":/rpm --rm arm64v8/amazonlinux:2 rpm -qa --dbpath /rpm | grep -v ^gpg-pubkey- | sort > packages.txt -rm -rf rpm - -docker run --rm arm64v8/amazonlinux:2 bash -c 'yum upgrade -y > /dev/null && rpm -qa' | grep -v ^gpg-pubkey- | sort > amazonlinux2.txt - -if diff -w -d amazonlinux2.txt packages.txt | grep -q '>'; then - echo 'Mismatching packages on images' - diff -w -d amazonlinux2.txt packages.txt -else - diff -w -d amazonlinux2.txt packages.txt | grep '<' | awk '{print $2}' > diff.txt -fi diff --git a/base/base-2-arm64/packages.txt b/base/base-2-arm64/packages.txt deleted file mode 100644 index dd6db128..00000000 --- a/base/base-2-arm64/packages.txt +++ /dev/null @@ -1,53 +0,0 @@ -basesystem-10.0-7.amzn2.0.1.noarch -bash-4.2.46-34.amzn2.aarch64 -bzip2-libs-1.0.6-13.amzn2.0.3.aarch64 -ca-certificates-2021.2.50-72.amzn2.0.7.noarch -chkconfig-1.7.4-1.amzn2.0.2.aarch64 -coreutils-8.22-24.amzn2.aarch64 -dejavu-fonts-common-2.33-6.amzn2.noarch -dejavu-sans-fonts-2.33-6.amzn2.noarch -expat-2.1.0-15.amzn2.0.2.aarch64 -filesystem-3.2-25.amzn2.0.4.aarch64 -fontconfig-2.13.0-4.3.amzn2.aarch64 -fontpackages-filesystem-1.44-8.amzn2.noarch -freetype-2.8-14.amzn2.1.1.aarch64 -gawk-4.0.2-4.amzn2.1.2.aarch64 -glibc-2.26-63.amzn2.aarch64 -glibc-all-langpacks-2.26-63.amzn2.aarch64 -glibc-common-2.26-63.amzn2.aarch64 -glibc-minimal-langpack-2.26-63.amzn2.aarch64 -gmp-6.0.0-15.amzn2.0.2.aarch64 -grep-2.20-3.amzn2.0.2.aarch64 -info-5.1-5.amzn2.aarch64 -keyutils-libs-1.5.8-3.amzn2.0.2.aarch64 -krb5-libs-1.15.1-55.amzn2.2.5.aarch64 -libacl-2.2.51-14.amzn2.aarch64 -libattr-2.4.46-12.amzn2.0.2.aarch64 -libcap-2.54-1.amzn2.0.1.aarch64 -libcom_err-1.42.9-19.amzn2.0.1.aarch64 -libffi-3.0.13-18.amzn2.0.2.aarch64 -libgcc-7.3.1-15.amzn2.aarch64 -libicu-50.2-4.amzn2.aarch64 -libpng-1.5.13-8.amzn2.0.1.aarch64 -libselinux-2.5-12.amzn2.0.2.aarch64 -libsepol-2.5-8.1.amzn2.0.2.aarch64 -libstdc++-7.3.1-15.amzn2.aarch64 -libtasn1-4.10-1.amzn2.0.3.aarch64 -libuuid-2.30.2-2.amzn2.0.11.aarch64 -libverto-0.2.5-4.amzn2.0.2.aarch64 -ncurses-6.0-8.20170212.amzn2.1.4.aarch64 -ncurses-base-6.0-8.20170212.amzn2.1.4.noarch -ncurses-libs-6.0-8.20170212.amzn2.1.4.aarch64 -nspr-4.34.0-3.1.amzn2.aarch64 -nss-softokn-freebl-3.79.0-4.amzn2.aarch64 -nss-util-3.79.0-1.amzn2.aarch64 -openssl-libs-1.0.2k-24.amzn2.0.7.aarch64 -p11-kit-0.23.22-1.amzn2.0.1.aarch64 -p11-kit-trust-0.23.22-1.amzn2.0.1.aarch64 -pcre-8.32-17.amzn2.0.3.aarch64 -popt-1.13-16.amzn2.0.2.aarch64 -sed-4.2.2-5.amzn2.0.2.aarch64 -setup-2.8.71-10.amzn2.0.1.noarch -system-release-2-14.amzn2.aarch64 -tzdata-2023c-1.amzn2.0.1.noarch -zlib-1.2.7-19.amzn2.0.2.aarch64 diff --git a/base/base-2-arm64/publish.sh b/base/base-2-arm64/publish.sh deleted file mode 100755 index b72bc9da..00000000 --- a/base/base-2-arm64/publish.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export BASE_IMAGE="mlupin/lambda-base-2:arm64" -export CC_IMAGE="mlupin/docker-lambda:base-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker tag ${BASE_IMAGE} ${CC_IMAGE} -docker tag ${BASE_IMAGE} ${CC_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${CC_IMAGE} -docker push ${CC_IMAGE}-${PUBLISH_DATE} diff --git a/base/base-2-x86_64/Dockerfile b/base/base-2-x86_64/Dockerfile deleted file mode 100644 index c5982127..00000000 --- a/base/base-2-x86_64/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM amd64/amazonlinux:2 - -# Docker doesn't support unpacking from remote URLs with ADD, -# and we don't want to 'docker import' because we can't squash into a small layer -# So this is expected to be downloaded from https://docker-lambda.s3.amazonaws.com/fs/base-2-x86_64.tgz -ADD ./base-2-x86_64.tgz /opt/ - -RUN yum --installroot=/opt install -y glibc-2.26-63.amzn2.x86_64 glibc-common-2.26-63.amzn2.x86_64 openssl-libs-1.0.2k-24.amzn2.0.7.x86_64 libicu-50.2-4.amzn2.x86_64 && \ - yum --installroot=/opt reinstall -y filesystem-3.2-25.amzn2.0.4.x86_64 setup-2.8.71-10.amzn2.0.1.noarch && \ - yum --installroot=/opt clean all - -FROM scratch - -COPY --from=0 /opt / - -ENV PATH=/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin \ - LD_LIBRARY_PATH=/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib \ - LANG=en_US.UTF-8 \ - TZ=:UTC \ - LAMBDA_TASK_ROOT=/var/task \ - LAMBDA_RUNTIME_DIR=/var/runtime \ - _LAMBDA_CONTROL_SOCKET=14 \ - _LAMBDA_SHARED_MEM_FD=11 \ - _LAMBDA_LOG_FD=9 \ - _LAMBDA_SB_ID=7 \ - _LAMBDA_CONSOLE_SOCKET=16 \ - _LAMBDA_RUNTIME_LOAD_TIME=1369872406543 \ - _AWS_XRAY_DAEMON_ADDRESS=169.254.79.2 \ - _AWS_XRAY_DAEMON_PORT=2000 \ - AWS_XRAY_DAEMON_ADDRESS=169.254.79.2:2000 \ - AWS_XRAY_CONTEXT_MISSING=LOG_ERROR \ - _X_AMZN_TRACE_ID='Root=1-dc99d00f-c079a84d433534434534ef0d;Parent=91ed514f1e5c03b2;Sampled=1' - -RUN chown sbx_user1051:495 /tmp && \ - chmod 700 /tmp - -WORKDIR /var/task diff --git a/base/base-2-x86_64/amazonlinux2.txt b/base/base-2-x86_64/amazonlinux2.txt deleted file mode 100644 index 45c052e8..00000000 --- a/base/base-2-x86_64/amazonlinux2.txt +++ /dev/null @@ -1,103 +0,0 @@ -amazon-linux-extras-2.0.1-1.amzn2.noarch -basesystem-10.0-7.amzn2.0.1.noarch -bash-4.2.46-34.amzn2.x86_64 -bzip2-libs-1.0.6-13.amzn2.0.3.x86_64 -ca-certificates-2021.2.50-72.amzn2.0.1.noarch -chkconfig-1.7.4-1.amzn2.0.2.x86_64 -coreutils-8.22-24.amzn2.x86_64 -cpio-2.11-28.amzn2.x86_64 -curl-7.76.1-7.amzn2.0.2.x86_64 -cyrus-sasl-lib-2.1.26-23.amzn2.x86_64 -diffutils-3.3-5.amzn2.x86_64 -elfutils-libelf-0.176-2.amzn2.x86_64 -expat-2.1.0-12.amzn2.x86_64 -file-libs-5.11-36.amzn2.0.1.x86_64 -filesystem-3.2-25.amzn2.0.4.x86_64 -findutils-4.5.11-6.amzn2.x86_64 -gawk-4.0.2-4.amzn2.1.2.x86_64 -gdbm-1.13-6.amzn2.0.2.x86_64 -glib2-2.56.1-9.amzn2.0.2.x86_64 -glibc-2.26-55.amzn2.x86_64 -glibc-common-2.26-55.amzn2.x86_64 -glibc-langpack-en-2.26-55.amzn2.x86_64 -glibc-minimal-langpack-2.26-55.amzn2.x86_64 -gmp-6.0.0-15.amzn2.0.2.x86_64 -gnupg2-2.0.22-5.amzn2.0.4.x86_64 -gpgme-1.3.2-5.amzn2.0.2.x86_64 -grep-2.20-3.amzn2.0.2.x86_64 -info-5.1-5.amzn2.x86_64 -keyutils-libs-1.5.8-3.amzn2.0.2.x86_64 -krb5-libs-1.15.1-37.amzn2.2.2.x86_64 -libacl-2.2.51-14.amzn2.x86_64 -libassuan-2.1.0-3.amzn2.0.2.x86_64 -libattr-2.4.46-12.amzn2.0.2.x86_64 -libblkid-2.30.2-2.amzn2.0.5.x86_64 -libcap-2.22-9.amzn2.0.2.x86_64 -libcom_err-1.42.9-19.amzn2.x86_64 -libcrypt-2.26-55.amzn2.x86_64 -libcurl-7.76.1-7.amzn2.0.2.x86_64 -libdb-5.3.21-24.amzn2.0.3.x86_64 -libdb-utils-5.3.21-24.amzn2.0.3.x86_64 -libffi-3.0.13-18.amzn2.0.2.x86_64 -libgcc-7.3.1-13.amzn2.x86_64 -libgcrypt-1.5.3-14.amzn2.0.2.x86_64 -libgpg-error-1.12-3.amzn2.0.3.x86_64 -libidn2-2.3.0-1.amzn2.x86_64 -libmetalink-0.1.3-13.amzn2.x86_64 -libmount-2.30.2-2.amzn2.0.5.x86_64 -libnghttp2-1.41.0-1.amzn2.x86_64 -libselinux-2.5-12.amzn2.0.2.x86_64 -libsepol-2.5-8.1.amzn2.0.2.x86_64 -libssh2-1.4.3-12.amzn2.2.3.x86_64 -libstdc++-7.3.1-13.amzn2.x86_64 -libtasn1-4.10-1.amzn2.0.2.x86_64 -libunistring-0.9.3-9.amzn2.0.2.x86_64 -libuuid-2.30.2-2.amzn2.0.5.x86_64 -libverto-0.2.5-4.amzn2.0.2.x86_64 -libxml2-2.9.1-6.amzn2.5.4.x86_64 -lua-5.1.4-15.amzn2.0.2.x86_64 -ncurses-6.0-8.20170212.amzn2.1.3.x86_64 -ncurses-base-6.0-8.20170212.amzn2.1.3.noarch -ncurses-libs-6.0-8.20170212.amzn2.1.3.x86_64 -nspr-4.25.0-2.amzn2.x86_64 -nss-3.53.1-7.amzn2.x86_64 -nss-pem-1.0.3-5.amzn2.x86_64 -nss-softokn-3.53.1-6.amzn2.x86_64 -nss-softokn-freebl-3.53.1-6.amzn2.x86_64 -nss-sysinit-3.53.1-7.amzn2.x86_64 -nss-tools-3.53.1-7.amzn2.x86_64 -nss-util-3.53.1-1.amzn2.x86_64 -openldap-2.4.44-23.amzn2.0.2.x86_64 -openssl-libs-1.0.2k-19.amzn2.0.8.x86_64 -p11-kit-0.23.22-1.amzn2.0.1.x86_64 -p11-kit-trust-0.23.22-1.amzn2.0.1.x86_64 -pcre-8.32-17.amzn2.0.2.x86_64 -pinentry-0.8.1-17.amzn2.0.2.x86_64 -popt-1.13-16.amzn2.0.2.x86_64 -pth-2.0.7-23.amzn2.0.2.x86_64 -pygpgme-0.3-9.amzn2.0.3.x86_64 -pyliblzma-0.5.3-25.amzn2.x86_64 -python-2.7.18-1.amzn2.0.4.x86_64 -python-iniparse-0.4-9.amzn2.noarch -python-libs-2.7.18-1.amzn2.0.4.x86_64 -python-pycurl-7.19.0-19.amzn2.0.2.x86_64 -python-urlgrabber-3.10-9.amzn2.0.1.noarch -python2-rpm-4.11.3-40.amzn2.0.6.x86_64 -pyxattr-0.5.1-5.amzn2.0.2.x86_64 -readline-6.2-10.amzn2.0.2.x86_64 -rpm-4.11.3-40.amzn2.0.6.x86_64 -rpm-build-libs-4.11.3-40.amzn2.0.6.x86_64 -rpm-libs-4.11.3-40.amzn2.0.6.x86_64 -sed-4.2.2-5.amzn2.0.2.x86_64 -setup-2.8.71-10.amzn2.0.1.noarch -shared-mime-info-1.8-4.amzn2.x86_64 -sqlite-3.7.17-8.amzn2.1.1.x86_64 -system-release-2-13.amzn2.x86_64 -tzdata-2021a-1.amzn2.noarch -vim-minimal-8.1.1602-1.amzn2.x86_64 -xz-libs-5.2.2-1.amzn2.0.2.x86_64 -yum-3.4.3-158.amzn2.0.5.noarch -yum-metadata-parser-1.1.4-10.amzn2.0.2.x86_64 -yum-plugin-ovl-1.1.31-46.amzn2.0.1.noarch -yum-plugin-priorities-1.1.31-46.amzn2.0.1.noarch -zlib-1.2.7-18.amzn2.x86_64 diff --git a/base/base-2-x86_64/build.sh b/base/base-2-x86_64/build.sh deleted file mode 100755 index 3e780d50..00000000 --- a/base/base-2-x86_64/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -curl -O https://docker-lambda.s3.amazonaws.com/fs/base-2-x86_64.tgz - -set -euxo pipefail - -docker build --progress plain --no-cache --platform linux/amd64 --squash -t mlupin/lambda-base-2:x86_64 . - -rm ./base-2-x86_64.tgz diff --git a/base/base-2-x86_64/dump-packages.sh b/base/base-2-x86_64/dump-packages.sh deleted file mode 100755 index 7f00bdb8..00000000 --- a/base/base-2-x86_64/dump-packages.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -curl https://docker-lambda.s3.amazonaws.com/fs/base-2-x86_64.tgz | tar -xz --strip-components=2 -- var/lib/rpm - -docker pull amd64/amazonlinux:2 -docker run -v "$PWD/rpm":/rpm --rm amd64/amazonlinux:2 rpm -qa --dbpath /rpm | grep -v ^gpg-pubkey- | sort > packages.txt -rm -rf rpm - -docker run --rm amd64/amazonlinux:2 bash -c 'yum upgrade -y > /dev/null && rpm -qa' | grep -v ^gpg-pubkey- | sort > amazonlinux2.txt - -if diff -w -d amazonlinux2.txt packages.txt | grep -q '>'; then - echo 'Mismatching packages on images' - diff -w -d amazonlinux2.txt packages.txt -else - diff -w -d amazonlinux2.txt packages.txt | grep '<' | awk '{print $2}' > diff.txt -fi diff --git a/base/base-2-x86_64/packages.txt b/base/base-2-x86_64/packages.txt deleted file mode 100644 index 29b9687a..00000000 --- a/base/base-2-x86_64/packages.txt +++ /dev/null @@ -1,44 +0,0 @@ -basesystem-10.0-7.amzn2.0.1.noarch -bash-4.2.46-34.amzn2.x86_64 -ca-certificates-2021.2.50-72.amzn2.0.1.noarch -chkconfig-1.7.4-1.amzn2.0.2.x86_64 -coreutils-8.22-24.amzn2.x86_64 -filesystem-3.2-25.amzn2.0.4.x86_64 -gawk-4.0.2-4.amzn2.1.2.x86_64 -glibc-2.26-48.amzn2.x86_64 -glibc-all-langpacks-2.26-48.amzn2.x86_64 -glibc-common-2.26-48.amzn2.x86_64 -glibc-minimal-langpack-2.26-48.amzn2.x86_64 -gmp-6.0.0-15.amzn2.0.2.x86_64 -grep-2.20-3.amzn2.0.2.x86_64 -info-5.1-5.amzn2.x86_64 -keyutils-libs-1.5.8-3.amzn2.0.2.x86_64 -krb5-libs-1.15.1-37.amzn2.2.2.x86_64 -libacl-2.2.51-14.amzn2.x86_64 -libattr-2.4.46-12.amzn2.0.2.x86_64 -libcap-2.22-9.amzn2.0.2.x86_64 -libcom_err-1.42.9-19.amzn2.x86_64 -libffi-3.0.13-18.amzn2.0.2.x86_64 -libgcc-7.3.1-13.amzn2.x86_64 -libicu-50.2-4.amzn2.x86_64 -libselinux-2.5-12.amzn2.0.2.x86_64 -libsepol-2.5-8.1.amzn2.0.2.x86_64 -libstdc++-7.3.1-13.amzn2.x86_64 -libtasn1-4.10-1.amzn2.0.2.x86_64 -libverto-0.2.5-4.amzn2.0.2.x86_64 -ncurses-6.0-8.20170212.amzn2.1.3.x86_64 -ncurses-base-6.0-8.20170212.amzn2.1.3.noarch -ncurses-libs-6.0-8.20170212.amzn2.1.3.x86_64 -nspr-4.25.0-2.amzn2.x86_64 -nss-softokn-freebl-3.53.1-6.amzn2.x86_64 -nss-util-3.53.1-1.amzn2.x86_64 -openssl-libs-1.0.2k-19.amzn2.0.7.x86_64 -p11-kit-0.23.22-1.amzn2.0.1.x86_64 -p11-kit-trust-0.23.22-1.amzn2.0.1.x86_64 -pcre-8.32-17.amzn2.0.2.x86_64 -popt-1.13-16.amzn2.0.2.x86_64 -sed-4.2.2-5.amzn2.0.2.x86_64 -setup-2.8.71-10.amzn2.0.1.noarch -system-release-2-13.amzn2.x86_64 -tzdata-2021a-1.amzn2.noarch -zlib-1.2.7-18.amzn2.x86_64 diff --git a/base/base-2-x86_64/publish.sh b/base/base-2-x86_64/publish.sh deleted file mode 100755 index 7e1d3a19..00000000 --- a/base/base-2-x86_64/publish.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export BASE_IMAGE="mlupin/lambda-base-2:x86_64" -export CC_IMAGE="mlupin/docker-lambda:base-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker tag ${BASE_IMAGE} ${CC_IMAGE} -docker tag ${BASE_IMAGE} ${CC_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${CC_IMAGE} -docker push ${CC_IMAGE}-${PUBLISH_DATE} diff --git a/base/build-2-arm64/Dockerfile b/base/build-2-arm64/Dockerfile deleted file mode 100644 index 9d56a7f6..00000000 --- a/base/build-2-arm64/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/lambda-base-2:arm64 - -FROM arm64v8/amazonlinux:2 - -COPY --from=0 / /opt/ - -RUN yum --installroot=/opt install -y yum yum-plugin-ovl yum-plugin-priorities - -FROM mlupin/lambda-base-2:arm64 - -ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin \ - PIPX_BIN_DIR=/usr/local/bin \ - PIPX_HOME=/usr/local/pipx - -COPY --from=1 /opt / - -RUN chown root:root /tmp && \ - chmod 1777 /tmp && \ - yum install -y glibc-langpack-en && \ - yum groupinstall -y development && \ - yum install -y which clang cmake python-devel python3-devel amazon-linux-extras && \ - amazon-linux-extras install -y docker && \ - yum clean all && \ - pip3 install -U pip setuptools wheel --no-cache-dir && \ - pip3 install pipx --no-cache-dir diff --git a/base/build-2-arm64/build.sh b/base/build-2-arm64/build.sh deleted file mode 100755 index 2951e905..00000000 --- a/base/build-2-arm64/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -set -euxo pipefail - -docker build --progress plain --platform linux/arm64 --no-cache --squash -t mlupin/lambda-base-2:build-arm64 . diff --git a/base/build-2-arm64/publish.sh b/base/build-2-arm64/publish.sh deleted file mode 100755 index 16f1e2bf..00000000 --- a/base/build-2-arm64/publish.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export BASE_IMAGE="mlupin/lambda-base-2:build-arm64" -export CC_IMAGE="mlupin/docker-lambda:build-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker tag ${BASE_IMAGE} ${CC_IMAGE} -docker tag ${BASE_IMAGE} ${CC_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${CC_IMAGE} -docker push ${CC_IMAGE}-${PUBLISH_DATE} diff --git a/base/build-2-x86_64/Dockerfile b/base/build-2-x86_64/Dockerfile deleted file mode 100644 index 1b8f3ce9..00000000 --- a/base/build-2-x86_64/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/lambda-base-2:x86_64 - -FROM amd64/amazonlinux:2 - -COPY --from=0 / /opt/ - -RUN yum --installroot=/opt install -y yum yum-plugin-ovl yum-plugin-priorities - -FROM mlupin/lambda-base-2:x86_64 - -ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin \ - PIPX_BIN_DIR=/usr/local/bin \ - PIPX_HOME=/usr/local/pipx - -COPY --from=1 /opt / - -RUN chown root:root /tmp && \ - chmod 1777 /tmp && \ - yum install -y glibc-langpack-en && \ - yum groupinstall -y development && \ - yum install -y which clang cmake python-devel python3-devel amazon-linux-extras && \ - amazon-linux-extras install -y docker && \ - yum clean all && \ - pip3 install -U pip setuptools wheel --no-cache-dir && \ - pip3 install pipx --no-cache-dir diff --git a/base/build-2-x86_64/build.sh b/base/build-2-x86_64/build.sh deleted file mode 100755 index d77c6703..00000000 --- a/base/build-2-x86_64/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -set -euxo pipefail - -docker build --progress plain --platform linux/amd64 --no-cache --squash -t mlupin/lambda-base-2:build-x86_64 . diff --git a/base/build-2-x86_64/publish.sh b/base/build-2-x86_64/publish.sh deleted file mode 100755 index 981e8968..00000000 --- a/base/build-2-x86_64/publish.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export BASE_IMAGE="mlupin/lambda-base-2:build-x86_64" -export CC_IMAGE="mlupin/docker-lambda:build-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker tag ${BASE_IMAGE} ${CC_IMAGE} -docker tag ${BASE_IMAGE} ${CC_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${CC_IMAGE} -docker push ${CC_IMAGE}-${PUBLISH_DATE} diff --git a/base/build.sh b/base/build.sh new file mode 100755 index 00000000..396ff2f0 --- /dev/null +++ b/base/build.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -euxo pipefail + +docker build --platform linux/amd64 --no-cache --squash -t mlupin/lambda-base-2023:build . diff --git a/base/tar-find-layer/build.sh b/base/tar-find-layer/build.sh deleted file mode 100755 index 669856db..00000000 --- a/base/tar-find-layer/build.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -rm -rf layer layer.zip - -docker run --rm -v "$PWD":/tmp/layer amazonlinux:2 bash -c " - mkdir -p /tmp/layer/layer/bin - yum install -y wget tar xz gcc make automake zip - cd ~ - wget https://mirrors.kernel.org/gnu/findutils/findutils-4.8.0.tar.xz - tar xJf findutils-*.tar.xz - pushd findutils* - ./configure - make - cp -a ./find/find /tmp/layer/layer/bin/ - cp -a ./xargs/xargs /tmp/layer/layer/bin/ - cp -a ./locate/updatedb /tmp/layer/layer/bin/ - cp -a ./locate/locate /tmp/layer/layer/bin/ - popd - - wget https://mirrors.kernel.org/gnu/gzip/gzip-1.9.tar.xz - tar xJf gzip-*.tar.xz - pushd gzip-* - ./configure - make - cp -a {gzip,gzexe,gunzip,zcat,zdiff,zfgrep,zless,zmore,znew,zcmp} /tmp/layer/layer/bin/ - popd - - wget https://mirrors.kernel.org/gnu/tar/tar-1.34.tar.xz - tar xJf tar-*.tar.xz - pushd tar-* - FORCE_UNSAFE_CONFIGURE=1 ./configure - make - cp -a src/tar /tmp/layer/layer/bin/ - popd - - pushd /tmp/layer/layer - zip -yr /tmp/layer/layer.zip . - popd - # rm -rf /tmp/layer/layer -" diff --git a/dump-fs/.gitignore b/dump-fs/.gitignore deleted file mode 100644 index 2063ac06..00000000 --- a/dump-fs/.gitignore +++ /dev/null @@ -1,252 +0,0 @@ -.serverless -node_modules - -### .NET section -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -bld/ -[Bb]in/ -[Oo]bj/ - -# Visual Studio 2015 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# DNX -project.lock.json -artifacts/ - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config -# NuGet v3's project.json files produces more ignoreable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Microsoft Azure ApplicationInsights config file -ApplicationInsights.config - -# Windows Store app package directory -AppPackages/ -BundleArtifacts/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -node_modules/ -orleans.codegen.cs - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe - -# FAKE - F# Make -.fake/ -*.orig - -# macOS -.DS_Store - -# JetBrains Rider C# IDE -.idea* - -# Serverless directories -.serverless - -### /.NET section diff --git a/dump-fs/Makefile b/dump-fs/Makefile deleted file mode 100644 index eb7009f0..00000000 --- a/dump-fs/Makefile +++ /dev/null @@ -1,93 +0,0 @@ -.PHONY: clean build deploy dump-all - -build-dotnetcore31-x86_64: - mkdir -p ./bin - docker run --rm -v "$(realpath ./dump-dotnetcore31):/tmp/build" -v "$(realpath ./bin):/tmp/bin" mcr.microsoft.com/dotnet/sdk:3.1-bullseye bash -c " \ - apt-get update && apt-get install -y zip && \ - cd /tmp/build && \ - dotnet restore && \ - dotnet tool install -g Amazon.Lambda.Tools --framework netcoreapp3.1 && \ - export PATH=\"$$PATH:/root/.dotnet/tools\" && \ - dotnet lambda package --configuration Release --framework netcoreapp3.1 --function-architecture x86_64 --output-package /tmp/bin/Release/dump-dotnetcore31/handler-x86_64.zip \ - " - -build-dotnetcore31-arm64: - mkdir -p ./bin - docker run --rm -v "$(realpath ./dump-dotnetcore31):/tmp/build" -v "$(realpath ./bin):/tmp/bin" mcr.microsoft.com/dotnet/sdk:3.1-bullseye bash -c " \ - apt-get update && apt-get install -y zip && \ - cd /tmp/build && \ - dotnet restore && \ - dotnet tool install -g Amazon.Lambda.Tools --framework netcoreapp3.1 && \ - export PATH=\"$$PATH:/root/.dotnet/tools\" && \ - dotnet lambda package --configuration Release --framework netcoreapp3.1 --function-architecture arm64 --output-package /tmp/bin/Release/dump-dotnetcore31/handler-arm64.zip \ - " - -build-dotnetcore31: build-dotnetcore31-x86_64 build-dotnetcore31-arm64 - -build-dotnet6-x86_64: - mkdir -p ./bin - docker run --rm -v "$(realpath ./dump-dotnet6):/tmp/build" -v "$(realpath ./bin):/tmp/bin" mcr.microsoft.com/dotnet/sdk:6.0 bash -c " \ - apt-get update && apt-get install -y zip && \ - cd /tmp/build && \ - dotnet restore && \ - dotnet tool install -g Amazon.Lambda.Tools --framework net6.0 && \ - export PATH=\"$$PATH:/root/.dotnet/tools\" && \ - dotnet lambda package --configuration Release --framework net6.0 --function-architecture x86_64 --output-package /tmp/bin/Release/dump-dotnet6/handler-x86_64.zip \ - " - -build-dotnet6-arm64: - mkdir -p ./bin - docker run --rm -v "$(realpath ./dump-dotnet6):/tmp/build" -v "$(realpath ./bin):/tmp/bin" mcr.microsoft.com/dotnet/sdk:6.0 bash -c " \ - apt-get update && apt-get install -y zip && \ - cd /tmp/build && \ - dotnet restore && \ - dotnet tool install -g Amazon.Lambda.Tools --framework net6.0 && \ - export PATH=\"$$PATH:/root/.dotnet/tools\" && \ - dotnet lambda package --configuration Release --framework net6.0 --function-architecture arm64 --output-package /tmp/bin/Release/dump-dotnet6/handler-arm64.zip \ - " - -build-dotnet6: build-dotnet6-x86_64 build-dotnet6-arm64 - -build-java8.al2: - docker run --rm -v "$(realpath ./dump-java8.al2):/app" -w /app gradle:jdk8 gradle build - cp -a dump-java8.al2/build/distributions/app.zip bin/dump-java8.al2-x86_64.zip - cp -a dump-java8.al2/build/distributions/app.zip bin/dump-java8.al2-arm64.zip - -build-java11: - docker run --rm -v "$(realpath ./dump-java11):/app" -w /app gradle:jdk11 gradle build - cp -a dump-java11/build/distributions/app.zip bin/dump-java11-x86_64.zip - cp -a dump-java11/build/distributions/app.zip bin/dump-java11-arm64.zip - -build-java17: - docker run --rm -v "$(realpath ./dump-java17):/app" -w /app gradle:jdk17 gradle build - cp -a dump-java17/build/distributions/app.zip bin/dump-java17-x86_64.zip - cp -a dump-java17/build/distributions/app.zip bin/dump-java17-arm64.zip - -build-provided.al2-x86_64: - export GO111MODULE=on && \ - cd dump-provided.al2/x86_64/ && go mod download - cd dump-provided.al2/x86_64/ && env GOARCH=amd64 GOOS=linux go build -tags lambda.norpc -ldflags="-s -w" main.go - mkdir -p bin/DumpProvidedAL2-x86_64 - mv dump-provided.al2/x86_64/main bin/DumpProvidedAL2-x86_64/bootstrap - cd bin/DumpProvidedAL2-x86_64/ && zip -r ../DumpProvidedAL2-x86_64.zip * - -build-provided.al2-arm64: - export GO111MODULE=on && \ - cd dump-provided.al2/arm64/ && go mod download - cd dump-provided.al2/arm64/ && env GOARCH=arm64 GOOS=linux go build -tags lambda.norpc -ldflags="-s -w" main.go - mkdir -p bin/DumpProvidedAL2-arm64 - mv dump-provided.al2/arm64/main bin/DumpProvidedAL2-arm64/bootstrap - cd bin/DumpProvidedAL2-arm64/ && zip -r ../DumpProvidedAL2-arm64.zip * - -build-provided.al2: build-provided.al2-x86_64 build-provided.al2-arm64 - -build: build-dotnetcore31 build-dotnet6 build-java8.al2 build-java11 build-java17 build-provided.al2 - -clean: - rm -rf ./bin ./vendor - -deploy: clean build - sls deploy --verbose - -dump-all: - ./dump-all.sh diff --git a/dump-fs/dump-all.sh b/dump-fs/dump-all.sh deleted file mode 100755 index cc4edc37..00000000 --- a/dump-fs/dump-all.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -echo "Dumping all Amazon Linux 2 lambda environments" -sleep 1 - -for lambda in $(serverless deploy list functions | grep 'dump-'); do - echo "Invoking ${lambda}…" - serverless invoke -f $lambda -l -done - -echo "All done." diff --git a/dump-fs/dump-base-2/handler.js b/dump-fs/dump-base-2/handler.js deleted file mode 100644 index 4f9c80c2..00000000 --- a/dump-fs/dump-base-2/handler.js +++ /dev/null @@ -1,45 +0,0 @@ -const fs = require('fs') -const { execSync } = require('child_process') -const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3") -const s3 = new S3Client({ region: 'eu-central-1' }); - -module.exports.handler_x86_64 = (async (e, c) => { return handler(e, c, "x86_64") }) -module.exports.handler_arm64 = (async (e, c) => { return handler(e, c, "arm64") }) - -handler = async (event, context, arch) => { - const execOpts = { stdio: 'inherit', maxBuffer: 16 * 1024 * 1024 } - - let filename = `base-2-${arch}.tgz` - fs.closeSync(fs.openSync(`/tmp/${filename}`, 'w')) - - let cmd = 'tar -cpzf /tmp/' + filename + - ' -C / --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp ' + - '--exclude=/var/task/* --exclude=/var/runtime/* --exclude=/var/lang/* --exclude=/var/rapid/* --exclude=/opt/* ' + - '--numeric-owner --ignore-failed-read /' - - execSync(event.cmd || cmd, execOpts) - if (event.cmd) return - - console.log('Zipping done! Uploading...') - - let data = await s3.send(new PutObjectCommand({ - Bucket: 'docker-lambda', - Key: 'fs/' + filename, - Body: fs.createReadStream('/tmp/' + filename), - ACL: 'public-read', - })) - - console.log('Uploading done!') - - console.log(process.execPath) - console.log(process.execArgv) - console.log(process.argv) - console.log(process.cwd()) - console.log(__filename) - console.log(process.env) - execSync('echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ', execOpts) - execSync("bash -O extglob -c 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done'", execOpts) - console.log(context) - - return data -} diff --git a/dump-fs/dump-dotnet6/Function.cs b/dump-fs/dump-dotnet6/Function.cs deleted file mode 100644 index 9cb529b3..00000000 --- a/dump-fs/dump-dotnet6/Function.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Diagnostics; -using System.IO; -using System.Threading.Tasks; - -using Amazon.Lambda.Core; -using Amazon; -using Amazon.S3; -using Amazon.S3.Model; - -[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] - -namespace dump_dotnet6 -{ - public class Function - { - public async Task FunctionHandler_x86_64(object invokeEvent, ILambdaContext context) - { - return await FunctionHandler(invokeEvent, context, "x86_64"); - } - - public async Task FunctionHandler_arm64(object invokeEvent, ILambdaContext context) - { - return await FunctionHandler(invokeEvent, context, "arm64"); - } - - public async Task FunctionHandler(object invokeEvent, ILambdaContext context, string arch) - { - string filename = $"dotnet6-{arch}.tgz"; - string cmd = $"touch /tmp/{filename} && tar -cpzf /tmp/{filename} --numeric-owner --ignore-failed-read /var/runtime /var/lang"; - - Console.WriteLine($"invokeEvent: {invokeEvent}"); - Console.WriteLine($"context.RemainingTime: {context.RemainingTime}"); - - Console.WriteLine("Parent cmdline:"); - Console.WriteLine(File.ReadAllText("/proc/1/cmdline").Replace("\0", " ")); - - Console.WriteLine("Parent env:"); - RunShell("xargs --null --max-args=1 < /proc/1/environ"); - - Console.WriteLine("This cmdline:"); - Console.WriteLine(File.ReadAllText($"/proc/{Process.GetCurrentProcess().Id}/cmdline").Replace("\0", " ")); - - Console.WriteLine("This env:"); - RunShell($"xargs --null --max-args=1 < /proc/{Process.GetCurrentProcess().Id}/environ"); - - Console.WriteLine($"Current working directory: {Directory.GetCurrentDirectory()}"); - - RunShell(cmd); - - Console.WriteLine("Zipping done! Uploading..."); - - var s3Client = new AmazonS3Client(RegionEndpoint.EUCentral1); - var response = await s3Client.PutObjectAsync(new Amazon.S3.Model.PutObjectRequest - { - BucketName = "docker-lambda", - Key = $"fs/{filename}", - FilePath = $"/tmp/{filename}", - CannedACL = S3CannedACL.PublicRead, - }); - - Console.WriteLine("Uploading done!"); - - return response.HttpStatusCode.ToString(); - } - - private static Process RunShell(string cmd) - { - var escapedArgs = cmd.Replace("\"", "\\\""); - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = "/bin/sh", - Arguments = $"-c \"{escapedArgs}\"", - UseShellExecute = false, - CreateNoWindow = true, - } - }; - process.Start(); - process.WaitForExit(); - return process; - } - } -} diff --git a/dump-fs/dump-dotnet6/dump-dotnet6.csproj b/dump-fs/dump-dotnet6/dump-dotnet6.csproj deleted file mode 100644 index 904bbffe..00000000 --- a/dump-fs/dump-dotnet6/dump-dotnet6.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - net6.0 - dump_dotnet6 - true - dump_dotnet6 - - - - - - - - - diff --git a/dump-fs/dump-dotnet6/global.json b/dump-fs/dump-dotnet6/global.json deleted file mode 100644 index 5d6044cf..00000000 --- a/dump-fs/dump-dotnet6/global.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "sdk": { - "version": "6.0.201" - } -} diff --git a/dump-fs/dump-dotnetcore31/Function.cs b/dump-fs/dump-dotnetcore31/Function.cs deleted file mode 100644 index 261cfa47..00000000 --- a/dump-fs/dump-dotnetcore31/Function.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Diagnostics; -using System.IO; -using System.Threading.Tasks; - -using Amazon.Lambda.Core; -using Amazon; -using Amazon.S3; -using Amazon.S3.Model; - -[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] - -namespace dump_dotnetcore31 -{ - public class Function - { - public async Task FunctionHandler_x86_64(object invokeEvent, ILambdaContext context) - { - return await FunctionHandler(invokeEvent, context, "x86_64"); - } - - public async Task FunctionHandler_arm64(object invokeEvent, ILambdaContext context) - { - return await FunctionHandler(invokeEvent, context, "arm64"); - } - - public async Task FunctionHandler(object invokeEvent, ILambdaContext context, string arch) - { - string filename = $"dotnetcore3.1-{arch}.tgz"; - string cmd = $"touch /tmp/{filename} && tar -cpzf /tmp/{filename} --numeric-owner --ignore-failed-read /var/runtime /var/lang"; - - Console.WriteLine($"invokeEvent: {invokeEvent}"); - Console.WriteLine($"context.RemainingTime: {context.RemainingTime}"); - - Console.WriteLine("Parent cmdline:"); - Console.WriteLine(File.ReadAllText("/proc/1/cmdline").Replace("\0", " ")); - - Console.WriteLine("Parent env:"); - RunShell("xargs --null --max-args=1 < /proc/1/environ"); - - Console.WriteLine("This cmdline:"); - Console.WriteLine(File.ReadAllText($"/proc/{Process.GetCurrentProcess().Id}/cmdline").Replace("\0", " ")); - - Console.WriteLine("This env:"); - RunShell($"xargs --null --max-args=1 < /proc/{Process.GetCurrentProcess().Id}/environ"); - - Console.WriteLine($"Current working directory: {Directory.GetCurrentDirectory()}"); - - RunShell(cmd); - - Console.WriteLine("Zipping done! Uploading..."); - - var s3Client = new AmazonS3Client(RegionEndpoint.EUCentral1); - var response = await s3Client.PutObjectAsync(new Amazon.S3.Model.PutObjectRequest - { - BucketName = "docker-lambda", - Key = $"fs/{filename}", - FilePath = $"/tmp/{filename}", - CannedACL = S3CannedACL.PublicRead, - }); - - Console.WriteLine("Uploading done!"); - - return response.HttpStatusCode.ToString(); - } - - private static Process RunShell(string cmd) - { - var escapedArgs = cmd.Replace("\"", "\\\""); - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = "/bin/sh", - Arguments = $"-c \"{escapedArgs}\"", - UseShellExecute = false, - CreateNoWindow = true, - } - }; - process.Start(); - process.WaitForExit(); - return process; - } - } -} diff --git a/dump-fs/dump-dotnetcore31/dump-dotnetcore31.csproj b/dump-fs/dump-dotnetcore31/dump-dotnetcore31.csproj deleted file mode 100644 index 9c75b532..00000000 --- a/dump-fs/dump-dotnetcore31/dump-dotnetcore31.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - netcoreapp3.1 - dump_dotnetcore31 - true - dump_dotnetcore31 - - - - - - - - - diff --git a/dump-fs/dump-dotnetcore31/global.json b/dump-fs/dump-dotnetcore31/global.json deleted file mode 100644 index 0c77fda7..00000000 --- a/dump-fs/dump-dotnetcore31/global.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "sdk": { - "version": "3.1" - } -} diff --git a/dump-fs/dump-java11/.gitignore b/dump-fs/dump-java11/.gitignore deleted file mode 100644 index 9f4b3e1a..00000000 --- a/dump-fs/dump-java11/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -*.class -.gradle -/build/ -/bin/ -/.settings/ -.project -.classpath - -# Package Files -*.jar -*.war -*.ear - -# Serverless directories -.serverless - -!/gradle/wrapper/gradle-wrapper.jar diff --git a/dump-fs/dump-java11/build.gradle b/dump-fs/dump-java11/build.gradle deleted file mode 100644 index 21d2c1ee..00000000 --- a/dump-fs/dump-java11/build.gradle +++ /dev/null @@ -1,26 +0,0 @@ -apply plugin: 'java' - -sourceCompatibility = '11' -targetCompatibility = '11' - -repositories { - mavenCentral() -} - -dependencies { - implementation ( - 'com.amazonaws:aws-lambda-java-core:1.2.0', - 'com.amazonaws:aws-lambda-java-events:2.2.7', - 'com.amazonaws:aws-java-sdk-s3:1.11.681' - ) -} - -task buildZip(type: Zip) { - from compileJava - from processResources - into('lib') { - from configurations.runtimeClasspath - } -} - -build.dependsOn buildZip diff --git a/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11.java b/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11.java deleted file mode 100644 index 53260198..00000000 --- a/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11.java +++ /dev/null @@ -1,85 +0,0 @@ -package pl.lupin.lambda; - -import java.io.File; -import java.io.IOException; -import java.lang.InterruptedException; -import java.lang.management.ManagementFactory; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Map; -import java.util.Scanner; - -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import com.amazonaws.services.s3.model.CannedAccessControlList; -import com.amazonaws.services.s3.model.PutObjectRequest; -import com.amazonaws.services.s3.model.PutObjectResult; -import com.amazonaws.services.lambda.runtime.Context; - -public class DumpJava11 { - public PutObjectResult handle(Object input, Context context, String arch) { - String filename = "java11-" + arch + ".tgz"; - String cmd = "touch /tmp/" + filename + " && tar -cpzf /tmp/" + filename + " --numeric-owner --ignore-failed-read /var/runtime /var/lang"; - AmazonS3 s3client = AmazonS3ClientBuilder.standard().withRegion("eu-central-1").build(); - - System.out.println(ManagementFactory.getRuntimeMXBean().getInputArguments().toString()); - System.out.println(System.getProperty("sun.java.command")); - System.out.println(System.getProperty("java.home")); - System.out.println(System.getProperty("java.library.path")); - System.out.println(System.getProperty("java.class.path")); - System.out.println(System.getProperty("user.dir")); - System.out.println(System.getProperty("user.home")); - System.out.println(System.getProperty("user.name")); - System.out.println(new File(".").getAbsolutePath()); - Map env = System.getenv(); - for (String envName : env.keySet()) { - System.out.println(envName + "=" + env.get(envName)); - } - - try { - int pid = Integer.parseInt(new File("/proc/self").getCanonicalFile().getName()); - - System.out.println("Parent cmdline:"); - System.out.println(new String(Files.readAllBytes(Paths.get("/proc/1/cmdline"))).replace("\0", " ")); - - System.out.println("Parent env:"); - runShell("xargs --null --max-args=1 < /proc/1/environ"); - - System.out.println("This cmdline:"); - System.out.println(new String(Files.readAllBytes(Paths.get("/proc/" + pid + "/cmdline"))).replace("\0", " ")); - - System.out.println("This env:"); - runShell("xargs --null --max-args=1 < /proc/" + pid + "/environ"); - - if (runShell(cmd) != 0) { - return null; - } - - System.out.println("Zipping done! Uploading..."); - - return s3client.putObject(new PutObjectRequest("docker-lambda", "fs/" + filename, new File("/tmp/" + filename)) - .withCannedAcl(CannedAccessControlList.PublicRead)); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static int runShell(String cmd) throws IOException, InterruptedException { - Process process = Runtime.getRuntime().exec(new String[] { "sh", "-c", cmd }); - - try (Scanner stdoutScanner = new Scanner(process.getInputStream()); - Scanner stderrScanner = new Scanner(process.getErrorStream())) { - // Echo all stdout first - while (stdoutScanner.hasNextLine()) { - System.out.println(stdoutScanner.nextLine()); - } - // Then echo stderr - while (stderrScanner.hasNextLine()) { - System.err.println(stderrScanner.nextLine()); - } - } - - process.waitFor(); - return process.exitValue(); - } -} diff --git a/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11_arm64.java b/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11_arm64.java deleted file mode 100644 index 51a0ab13..00000000 --- a/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11_arm64.java +++ /dev/null @@ -1,15 +0,0 @@ -package pl.lupin.lambda; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import com.amazonaws.services.s3.model.PutObjectResult; - -import pl.lupin.lambda.DumpJava11; - -public class DumpJava11_arm64 implements RequestHandler { - @Override - public PutObjectResult handleRequest(Object input, Context context) { - DumpJava11 dump = new DumpJava11(); - return dump.handle(input, context, "arm64"); - } -} diff --git a/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11_x86_64.java b/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11_x86_64.java deleted file mode 100644 index a26bf913..00000000 --- a/dump-fs/dump-java11/src/main/java/pl/lupin/lambda/DumpJava11_x86_64.java +++ /dev/null @@ -1,15 +0,0 @@ -package pl.lupin.lambda; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import com.amazonaws.services.s3.model.PutObjectResult; - -import pl.lupin.lambda.DumpJava11; - -public class DumpJava11_x86_64 implements RequestHandler { - @Override - public PutObjectResult handleRequest(Object input, Context context) { - DumpJava11 dump = new DumpJava11(); - return dump.handle(input, context, "x86_64"); - } -} diff --git a/dump-fs/dump-java17/.gitignore b/dump-fs/dump-java17/.gitignore deleted file mode 100644 index 9f4b3e1a..00000000 --- a/dump-fs/dump-java17/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -*.class -.gradle -/build/ -/bin/ -/.settings/ -.project -.classpath - -# Package Files -*.jar -*.war -*.ear - -# Serverless directories -.serverless - -!/gradle/wrapper/gradle-wrapper.jar diff --git a/dump-fs/dump-java17/build.gradle b/dump-fs/dump-java17/build.gradle deleted file mode 100644 index 38e79969..00000000 --- a/dump-fs/dump-java17/build.gradle +++ /dev/null @@ -1,26 +0,0 @@ -apply plugin: 'java' - -sourceCompatibility = '17' -targetCompatibility = '17' - -repositories { - mavenCentral() -} - -dependencies { - implementation ( - 'com.amazonaws:aws-lambda-java-core:1.2.0', - 'com.amazonaws:aws-lambda-java-events:2.2.7', - 'com.amazonaws:aws-java-sdk-s3:1.11.681' - ) -} - -task buildZip(type: Zip) { - from compileJava - from processResources - into('lib') { - from configurations.runtimeClasspath - } -} - -build.dependsOn buildZip diff --git a/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17.java b/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17.java deleted file mode 100644 index e7cbfeaa..00000000 --- a/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17.java +++ /dev/null @@ -1,85 +0,0 @@ -package pl.lupin.lambda; - -import java.io.File; -import java.io.IOException; -import java.lang.InterruptedException; -import java.lang.management.ManagementFactory; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Map; -import java.util.Scanner; - -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import com.amazonaws.services.s3.model.CannedAccessControlList; -import com.amazonaws.services.s3.model.PutObjectRequest; -import com.amazonaws.services.s3.model.PutObjectResult; -import com.amazonaws.services.lambda.runtime.Context; - -public class DumpJava17 { - public PutObjectResult handle(Object input, Context context, String arch) { - String filename = "java17-" + arch + ".tgz"; - String cmd = "touch /tmp/" + filename + " && tar -cpzf /tmp/" + filename + " --numeric-owner --ignore-failed-read /var/runtime /var/lang"; - AmazonS3 s3client = AmazonS3ClientBuilder.standard().withRegion("eu-central-1").build(); - - System.out.println(ManagementFactory.getRuntimeMXBean().getInputArguments().toString()); - System.out.println(System.getProperty("sun.java.command")); - System.out.println(System.getProperty("java.home")); - System.out.println(System.getProperty("java.library.path")); - System.out.println(System.getProperty("java.class.path")); - System.out.println(System.getProperty("user.dir")); - System.out.println(System.getProperty("user.home")); - System.out.println(System.getProperty("user.name")); - System.out.println(new File(".").getAbsolutePath()); - Map env = System.getenv(); - for (String envName : env.keySet()) { - System.out.println(envName + "=" + env.get(envName)); - } - - try { - int pid = Integer.parseInt(new File("/proc/self").getCanonicalFile().getName()); - - System.out.println("Parent cmdline:"); - System.out.println(new String(Files.readAllBytes(Paths.get("/proc/1/cmdline"))).replace("\0", " ")); - - System.out.println("Parent env:"); - runShell("xargs --null --max-args=1 < /proc/1/environ"); - - System.out.println("This cmdline:"); - System.out.println(new String(Files.readAllBytes(Paths.get("/proc/" + pid + "/cmdline"))).replace("\0", " ")); - - System.out.println("This env:"); - runShell("xargs --null --max-args=1 < /proc/" + pid + "/environ"); - - if (runShell(cmd) != 0) { - return null; - } - - System.out.println("Zipping done! Uploading..."); - - return s3client.putObject(new PutObjectRequest("docker-lambda", "fs/" + filename, new File("/tmp/" + filename)) - .withCannedAcl(CannedAccessControlList.PublicRead)); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static int runShell(String cmd) throws IOException, InterruptedException { - Process process = Runtime.getRuntime().exec(new String[] { "sh", "-c", cmd }); - - try (Scanner stdoutScanner = new Scanner(process.getInputStream()); - Scanner stderrScanner = new Scanner(process.getErrorStream())) { - // Echo all stdout first - while (stdoutScanner.hasNextLine()) { - System.out.println(stdoutScanner.nextLine()); - } - // Then echo stderr - while (stderrScanner.hasNextLine()) { - System.err.println(stderrScanner.nextLine()); - } - } - - process.waitFor(); - return process.exitValue(); - } -} diff --git a/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17_arm64.java b/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17_arm64.java deleted file mode 100644 index 785d7b74..00000000 --- a/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17_arm64.java +++ /dev/null @@ -1,15 +0,0 @@ -package pl.lupin.lambda; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import com.amazonaws.services.s3.model.PutObjectResult; - -import pl.lupin.lambda.DumpJava17; - -public class DumpJava17_arm64 implements RequestHandler { - @Override - public PutObjectResult handleRequest(Object input, Context context) { - DumpJava17 dump = new DumpJava17(); - return dump.handle(input, context, "arm64"); - } -} diff --git a/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17_x86_64.java b/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17_x86_64.java deleted file mode 100644 index 5f5d5cbd..00000000 --- a/dump-fs/dump-java17/src/main/java/pl/lupin/lambda/DumpJava17_x86_64.java +++ /dev/null @@ -1,15 +0,0 @@ -package pl.lupin.lambda; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import com.amazonaws.services.s3.model.PutObjectResult; - -import pl.lupin.lambda.DumpJava17; - -public class DumpJava17_x86_64 implements RequestHandler { - @Override - public PutObjectResult handleRequest(Object input, Context context) { - DumpJava17 dump = new DumpJava17(); - return dump.handle(input, context, "x86_64"); - } -} diff --git a/dump-fs/dump-java8.al2/.gitignore b/dump-fs/dump-java8.al2/.gitignore deleted file mode 100644 index 9f4b3e1a..00000000 --- a/dump-fs/dump-java8.al2/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -*.class -.gradle -/build/ -/bin/ -/.settings/ -.project -.classpath - -# Package Files -*.jar -*.war -*.ear - -# Serverless directories -.serverless - -!/gradle/wrapper/gradle-wrapper.jar diff --git a/dump-fs/dump-java8.al2/build.gradle b/dump-fs/dump-java8.al2/build.gradle deleted file mode 100644 index 48fbad2d..00000000 --- a/dump-fs/dump-java8.al2/build.gradle +++ /dev/null @@ -1,26 +0,0 @@ -apply plugin: 'java' - -sourceCompatibility = '1.8' -targetCompatibility = '1.8' - -repositories { - mavenCentral() -} - -dependencies { - implementation ( - 'com.amazonaws:aws-lambda-java-core:1.2.0', - 'com.amazonaws:aws-lambda-java-events:2.2.7', - 'com.amazonaws:aws-java-sdk-s3:1.11.681' - ) -} - -task buildZip(type: Zip) { - from compileJava - from processResources - into('lib') { - from configurations.runtimeClasspath - } -} - -build.dependsOn buildZip diff --git a/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2.java b/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2.java deleted file mode 100644 index b2272341..00000000 --- a/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2.java +++ /dev/null @@ -1,85 +0,0 @@ -package pl.lupin.lambda; - -import java.io.File; -import java.io.IOException; -import java.lang.InterruptedException; -import java.lang.management.ManagementFactory; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Map; -import java.util.Scanner; - -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import com.amazonaws.services.s3.model.CannedAccessControlList; -import com.amazonaws.services.s3.model.PutObjectRequest; -import com.amazonaws.services.s3.model.PutObjectResult; -import com.amazonaws.services.lambda.runtime.Context; - -public class DumpJava8AL2 { - public PutObjectResult handle(Object input, Context context, String arch) { - String filename = "java8.al2-" + arch + ".tgz"; - String cmd = "touch /tmp/" + filename + " && tar -cpzf /tmp/" + filename + " --numeric-owner --ignore-failed-read /var/runtime /var/lang"; - AmazonS3 s3client = AmazonS3ClientBuilder.standard().withRegion("eu-central-1").build(); - - System.out.println(ManagementFactory.getRuntimeMXBean().getInputArguments().toString()); - System.out.println(System.getProperty("sun.java.command")); - System.out.println(System.getProperty("java.home")); - System.out.println(System.getProperty("java.library.path")); - System.out.println(System.getProperty("java.class.path")); - System.out.println(System.getProperty("user.dir")); - System.out.println(System.getProperty("user.home")); - System.out.println(System.getProperty("user.name")); - System.out.println(new File(".").getAbsolutePath()); - Map env = System.getenv(); - for (String envName : env.keySet()) { - System.out.println(envName + "=" + env.get(envName)); - } - - try { - int pid = Integer.parseInt(new File("/proc/self").getCanonicalFile().getName()); - - System.out.println("Parent cmdline:"); - System.out.println(new String(Files.readAllBytes(Paths.get("/proc/1/cmdline"))).replace("\0", " ")); - - System.out.println("Parent env:"); - runShell("xargs --null --max-args=1 < /proc/1/environ"); - - System.out.println("This cmdline:"); - System.out.println(new String(Files.readAllBytes(Paths.get("/proc/" + pid + "/cmdline"))).replace("\0", " ")); - - System.out.println("This env:"); - runShell("xargs --null --max-args=1 < /proc/" + pid + "/environ"); - - if (runShell(cmd) != 0) { - return null; - } - - System.out.println("Zipping done! Uploading..."); - - return s3client.putObject(new PutObjectRequest("docker-lambda", "fs/" + filename, new File("/tmp/" + filename)) - .withCannedAcl(CannedAccessControlList.PublicRead)); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static int runShell(String cmd) throws IOException, InterruptedException { - Process process = Runtime.getRuntime().exec(new String[] { "sh", "-c", cmd }); - - try (Scanner stdoutScanner = new Scanner(process.getInputStream()); - Scanner stderrScanner = new Scanner(process.getErrorStream())) { - // Echo all stdout first - while (stdoutScanner.hasNextLine()) { - System.out.println(stdoutScanner.nextLine()); - } - // Then echo stderr - while (stderrScanner.hasNextLine()) { - System.err.println(stderrScanner.nextLine()); - } - } - - process.waitFor(); - return process.exitValue(); - } -} diff --git a/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2_arm64.java b/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2_arm64.java deleted file mode 100644 index b98871df..00000000 --- a/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2_arm64.java +++ /dev/null @@ -1,15 +0,0 @@ -package pl.lupin.lambda; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import com.amazonaws.services.s3.model.PutObjectResult; - -import pl.lupin.lambda.DumpJava8AL2; - -public class DumpJava8AL2_arm64 implements RequestHandler { - @Override - public PutObjectResult handleRequest(Object input, Context context) { - DumpJava8AL2 dump = new DumpJava8AL2(); - return dump.handle(input, context, "arm64"); - } -} diff --git a/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2_x86_64.java b/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2_x86_64.java deleted file mode 100644 index f065518e..00000000 --- a/dump-fs/dump-java8.al2/src/main/java/pl/lupin/lambda/DumpJava8AL2_x86_64.java +++ /dev/null @@ -1,15 +0,0 @@ -package pl.lupin.lambda; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import com.amazonaws.services.s3.model.PutObjectResult; - -import pl.lupin.lambda.DumpJava8AL2; - -public class DumpJava8AL2_x86_64 implements RequestHandler { - @Override - public PutObjectResult handleRequest(Object input, Context context) { - DumpJava8AL2 dump = new DumpJava8AL2(); - return dump.handle(input, context, "x86_64"); - } -} diff --git a/dump-fs/dump-nodejs12x/handler.js b/dump-fs/dump-nodejs12x/handler.js deleted file mode 100644 index 57f3b41a..00000000 --- a/dump-fs/dump-nodejs12x/handler.js +++ /dev/null @@ -1,42 +0,0 @@ -const fs = require('fs') -const { execSync } = require('child_process') -const AWS = require('aws-sdk') -const s3 = new AWS.S3() - -module.exports.handler_x86_64 = (async (e, c) => { return handler(e, c, "x86_64") }) -module.exports.handler_arm64 = (async (e, c) => { return handler(e, c, "arm64") }) - -handler = async (event, context, arch) => { - const execOpts = { stdio: 'inherit', maxBuffer: 16 * 1024 * 1024 } - - let filename = `nodejs12.x-${arch}.tgz` - fs.closeSync(fs.openSync(`/tmp/${filename}`, 'w')) - - let cmd = 'tar -cpzf /tmp/' + filename + - ' --numeric-owner --ignore-failed-read /var/runtime /var/lang /var/rapid' - - execSync(cmd, execOpts) - - console.log('Zipping done! Uploading...') - - let data = await s3.upload({ - Bucket: 'docker-lambda', - Key: 'fs/' + filename, - Body: fs.createReadStream('/tmp/' + filename), - ACL: 'public-read', - }).promise() - - console.log('Uploading done!') - - console.log(process.execPath) - console.log(process.execArgv) - console.log(process.argv) - console.log(process.cwd()) - console.log(__filename) - console.log(process.env) - execSync('echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ', execOpts) - execSync("bash -O extglob -c 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done'", execOpts) - console.log(context) - - return data -} diff --git a/dump-fs/dump-nodejs14x/handler.js b/dump-fs/dump-nodejs14x/handler.js deleted file mode 100644 index d17790ab..00000000 --- a/dump-fs/dump-nodejs14x/handler.js +++ /dev/null @@ -1,42 +0,0 @@ -const fs = require('fs') -const { execSync } = require('child_process') -const AWS = require('aws-sdk') -const s3 = new AWS.S3() - -module.exports.handler_x86_64 = (async (e, c) => { return handler(e, c, "x86_64") }) -module.exports.handler_arm64 = (async (e, c) => { return handler(e, c, "arm64") }) - -handler = async (event, context, arch) => { - const execOpts = { stdio: 'inherit', maxBuffer: 16 * 1024 * 1024 } - - let filename = `nodejs14.x-${arch}.tgz` - fs.closeSync(fs.openSync(`/tmp/${filename}`, 'w')) - - let cmd = 'tar -cpzf /tmp/' + filename + - ' --numeric-owner --ignore-failed-read /var/runtime /var/lang /var/rapid' - - execSync(cmd, execOpts) - - console.log('Zipping done! Uploading...') - - let data = await s3.upload({ - Bucket: 'docker-lambda', - Key: 'fs/' + filename, - Body: fs.createReadStream('/tmp/' + filename), - ACL: 'public-read', - }).promise() - - console.log('Uploading done!') - - console.log(process.execPath) - console.log(process.execArgv) - console.log(process.argv) - console.log(process.cwd()) - console.log(__filename) - console.log(process.env) - execSync('echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ', execOpts) - execSync("bash -O extglob -c 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done'", execOpts) - console.log(context) - - return data -} diff --git a/dump-fs/dump-nodejs16x/handler.js b/dump-fs/dump-nodejs16x/handler.js deleted file mode 100644 index bc5af2b7..00000000 --- a/dump-fs/dump-nodejs16x/handler.js +++ /dev/null @@ -1,42 +0,0 @@ -const fs = require('fs') -const { execSync } = require('child_process') -const AWS = require('aws-sdk') -const s3 = new AWS.S3() - -module.exports.handler_x86_64 = (async (e, c) => { return handler(e, c, "x86_64") }) -module.exports.handler_arm64 = (async (e, c) => { return handler(e, c, "arm64") }) - -handler = async (event, context, arch) => { - const execOpts = { stdio: 'inherit', maxBuffer: 16 * 1024 * 1024 } - - let filename = `nodejs16.x-${arch}.tgz` - fs.closeSync(fs.openSync(`/tmp/${filename}`, 'w')) - - let cmd = 'tar -cpzf /tmp/' + filename + - ' --numeric-owner --ignore-failed-read /var/runtime /var/lang /var/rapid' - - execSync(cmd, execOpts) - - console.log('Zipping done! Uploading...') - - let data = await s3.upload({ - Bucket: 'docker-lambda', - Key: 'fs/' + filename, - Body: fs.createReadStream('/tmp/' + filename), - ACL: 'public-read', - }).promise() - - console.log('Uploading done!') - - console.log(process.execPath) - console.log(process.execArgv) - console.log(process.argv) - console.log(process.cwd()) - console.log(__filename) - console.log(process.env) - execSync('echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ', execOpts) - execSync("bash -O extglob -c 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done'", execOpts) - console.log(context) - - return data -} diff --git a/dump-fs/dump-nodejs18x/handler.js b/dump-fs/dump-nodejs18x/handler.js deleted file mode 100644 index 60d277d6..00000000 --- a/dump-fs/dump-nodejs18x/handler.js +++ /dev/null @@ -1,42 +0,0 @@ -const fs = require('fs') -const { execSync } = require('child_process') -const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3") -const s3 = new S3Client({ region: 'eu-central-1' }); - -module.exports.handler_x86_64 = (async (e, c) => { return handler(e, c, "x86_64") }) -module.exports.handler_arm64 = (async (e, c) => { return handler(e, c, "arm64") }) - -handler = async (event, context, arch) => { - const execOpts = { stdio: 'inherit', maxBuffer: 16 * 1024 * 1024 } - - let filename = `nodejs18.x-${arch}.tgz` - fs.closeSync(fs.openSync(`/tmp/${filename}`, 'w')) - - let cmd = 'tar -cpzf /tmp/' + filename + - ' --numeric-owner --ignore-failed-read /var/runtime /var/lang /var/rapid' - - execSync(cmd, execOpts) - - console.log('Zipping done! Uploading...') - - let data = await s3.send(new PutObjectCommand({ - Bucket: 'docker-lambda', - Key: 'fs/' + filename, - Body: fs.createReadStream('/tmp/' + filename), - ACL: 'public-read', - })) - - console.log('Uploading done!') - - console.log(process.execPath) - console.log(process.execArgv) - console.log(process.argv) - console.log(process.cwd()) - console.log(__filename) - console.log(process.env) - execSync('echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ', execOpts) - execSync("bash -O extglob -c 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done'", execOpts) - console.log(context) - - return data -} diff --git a/dump-fs/dump-provided.al2/arm64/go.mod b/dump-fs/dump-provided.al2/arm64/go.mod deleted file mode 100644 index 4c7afacb..00000000 --- a/dump-fs/dump-provided.al2/arm64/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module bootstrap - -require ( - github.com/aws/aws-lambda-go v1.19.0 - github.com/aws/aws-sdk-go-v2 v0.24.0 -) - -go 1.16 diff --git a/dump-fs/dump-provided.al2/arm64/go.sum b/dump-fs/dump-provided.al2/arm64/go.sum deleted file mode 100644 index aba8fd33..00000000 --- a/dump-fs/dump-provided.al2/arm64/go.sum +++ /dev/null @@ -1,48 +0,0 @@ -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/aws/aws-lambda-go v1.19.0 h1:Cn28zA8Mic4NpR7p4IlaEW2srI+U3+I7tRqjFMpt/fs= -github.com/aws/aws-lambda-go v1.19.0/go.mod h1:jJmlefzPfGnckuHdXX7/80O3BvUUi12XOkbv4w9SGLU= -github.com/aws/aws-sdk-go-v2 v0.24.0 h1:R0lL0krk9EyTI1vmO1ycoeceGZotSzCKO51LbPGq3rU= -github.com/aws/aws-sdk-go-v2 v0.24.0/go.mod h1:2LhT7UgHOXK3UXONKI5OMgIyoQL6zTAw/jwIeX6yqzw= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4= -github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/dump-fs/dump-provided.al2/arm64/main.go b/dump-fs/dump-provided.al2/arm64/main.go deleted file mode 100644 index f9ac8791..00000000 --- a/dump-fs/dump-provided.al2/arm64/main.go +++ /dev/null @@ -1,88 +0,0 @@ -// docker run --rm -v "$PWD":/go/src/handler mlupin/docker-lambda:build-go1.x sh -c \ -// 'go mod download && go build -tags lambda.norpc -ldflags="-s -w" bootstrap.go' && \ -// zip bootstrap.zip bootstrap - -package main - -import ( - "context" - "fmt" - "io/ioutil" - "log" - "os" - "os/exec" - "strings" - - "github.com/aws/aws-lambda-go/lambda" - "github.com/aws/aws-sdk-go-v2/aws" - "github.com/aws/aws-sdk-go-v2/aws/external" - "github.com/aws/aws-sdk-go-v2/service/s3" -) - -func handleRequest(ctx context.Context, event interface{}) (*s3.PutObjectResponse, error) { - filename := "provided.al2-arm64.tgz" - - runShell("touch /tmp/" + filename + " && tar -cpzf /tmp/" + filename + " --numeric-owner --ignore-failed-read /var/runtime /var/lang") - - fmt.Println("Zipping done! Uploading...") - - cfg, err := external.LoadDefaultAWSConfig() - if err != nil { - log.Fatal(err) - } - cfg.Region = "eu-central-1" - - file, err := os.Open("/tmp/" + filename) - if err != nil { - log.Fatal(err) - } - - resp, err := s3.New(cfg).PutObjectRequest(&s3.PutObjectInput{ - ACL: s3.ObjectCannedACLPublicRead, - Body: file, - Bucket: aws.String("docker-lambda"), - Key: aws.String("fs/" + filename), - }).Send(context.Background()) - if err != nil { - log.Fatal(err) - } - - fmt.Println("Uploading done!") - - fmt.Println("Parent env:") - runShell("xargs --null --max-args=1 < /proc/1/environ") - - fmt.Println("Parent cmdline:") - content, err := ioutil.ReadFile("/proc/1/cmdline") - fmt.Println(strings.ReplaceAll(string(content), "\x00", " ")) - - fmt.Println("os.Args:") - for _, a := range os.Args { - fmt.Println(a) - } - - fmt.Println("os.Getwd:") - pwd, _ := os.Getwd() - fmt.Println(pwd) - - fmt.Println("os.Environ:") - for _, e := range os.Environ() { - fmt.Println(e) - } - - fmt.Println("ctx:") - fmt.Println(ctx) - - return resp, nil -} - -func runShell(shellCmd string) { - cmd := exec.Command("sh", "-c", shellCmd) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - cmd.Run() -} - -func main() { - lambda.Start(handleRequest) -} diff --git a/dump-fs/dump-provided.al2/x86_64/go.mod b/dump-fs/dump-provided.al2/x86_64/go.mod deleted file mode 100644 index 79a4c5b3..00000000 --- a/dump-fs/dump-provided.al2/x86_64/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module dump-provided_al2 - -require ( - github.com/aws/aws-lambda-go v1.19.0 - github.com/aws/aws-sdk-go-v2 v0.24.0 -) - -go 1.16 diff --git a/dump-fs/dump-provided.al2/x86_64/go.sum b/dump-fs/dump-provided.al2/x86_64/go.sum deleted file mode 100644 index aba8fd33..00000000 --- a/dump-fs/dump-provided.al2/x86_64/go.sum +++ /dev/null @@ -1,48 +0,0 @@ -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/aws/aws-lambda-go v1.19.0 h1:Cn28zA8Mic4NpR7p4IlaEW2srI+U3+I7tRqjFMpt/fs= -github.com/aws/aws-lambda-go v1.19.0/go.mod h1:jJmlefzPfGnckuHdXX7/80O3BvUUi12XOkbv4w9SGLU= -github.com/aws/aws-sdk-go-v2 v0.24.0 h1:R0lL0krk9EyTI1vmO1ycoeceGZotSzCKO51LbPGq3rU= -github.com/aws/aws-sdk-go-v2 v0.24.0/go.mod h1:2LhT7UgHOXK3UXONKI5OMgIyoQL6zTAw/jwIeX6yqzw= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4= -github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/dump-fs/dump-provided.al2/x86_64/main.go b/dump-fs/dump-provided.al2/x86_64/main.go deleted file mode 100644 index a1aa6331..00000000 --- a/dump-fs/dump-provided.al2/x86_64/main.go +++ /dev/null @@ -1,88 +0,0 @@ -// docker run --rm -v "$PWD":/go/src/handler mlupin/docker-lambda:build-go1.x sh -c \ -// 'go mod download && go build -tags lambda.norpc -ldflags="-s -w" bootstrap.go' && \ -// zip bootstrap.zip bootstrap - -package main - -import ( - "context" - "fmt" - "io/ioutil" - "log" - "os" - "os/exec" - "strings" - - "github.com/aws/aws-lambda-go/lambda" - "github.com/aws/aws-sdk-go-v2/aws" - "github.com/aws/aws-sdk-go-v2/aws/external" - "github.com/aws/aws-sdk-go-v2/service/s3" -) - -func handleRequest(ctx context.Context, event interface{}) (*s3.PutObjectResponse, error) { - filename := "provided.al2-x86_64.tgz" - - runShell("touch /tmp/" + filename + " && tar -cpzf /tmp/" + filename + " --numeric-owner --ignore-failed-read /var/runtime /var/lang") - - fmt.Println("Zipping done! Uploading...") - - cfg, err := external.LoadDefaultAWSConfig() - if err != nil { - log.Fatal(err) - } - cfg.Region = "eu-central-1" - - file, err := os.Open("/tmp/" + filename) - if err != nil { - log.Fatal(err) - } - - resp, err := s3.New(cfg).PutObjectRequest(&s3.PutObjectInput{ - ACL: s3.ObjectCannedACLPublicRead, - Body: file, - Bucket: aws.String("docker-lambda"), - Key: aws.String("fs/" + filename), - }).Send(context.Background()) - if err != nil { - log.Fatal(err) - } - - fmt.Println("Uploading done!") - - fmt.Println("Parent env:") - runShell("xargs --null --max-args=1 < /proc/1/environ") - - fmt.Println("Parent cmdline:") - content, err := ioutil.ReadFile("/proc/1/cmdline") - fmt.Println(strings.ReplaceAll(string(content), "\x00", " ")) - - fmt.Println("os.Args:") - for _, a := range os.Args { - fmt.Println(a) - } - - fmt.Println("os.Getwd:") - pwd, _ := os.Getwd() - fmt.Println(pwd) - - fmt.Println("os.Environ:") - for _, e := range os.Environ() { - fmt.Println(e) - } - - fmt.Println("ctx:") - fmt.Println(ctx) - - return resp, nil -} - -func runShell(shellCmd string) { - cmd := exec.Command("sh", "-c", shellCmd) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - cmd.Run() -} - -func main() { - lambda.Start(handleRequest) -} diff --git a/dump-fs/dump-python310/handler.py b/dump-fs/dump-python310/handler.py deleted file mode 100644 index 63b89ada..00000000 --- a/dump-fs/dump-python310/handler.py +++ /dev/null @@ -1,50 +0,0 @@ -from __future__ import print_function - -import os -import sys -import subprocess -import json -import boto3 -from boto3.s3.transfer import S3Transfer - -TRANSFER = S3Transfer(boto3.client('s3')) - -def lambda_handler_arm64(event, context): - return lambda_handler(event, context, "arm64") - -def lambda_handler_x86_64(event, context): - return lambda_handler(event, context, "x86_64") - -def lambda_handler(event, context, arch): - if 'cmd' in event: - return print(subprocess.check_output(['sh', '-c', event['cmd']]).decode('utf-8')) - - filename = f'python3.10-{arch}.tgz' - - subprocess.call(['touch', f'/tmp/{filename}']) - - subprocess.call(['sh', '-c', f'tar -cpzf /tmp/{filename} --numeric-owner --ignore-failed-read ' + - '/var/runtime /var/lang /var/rapid']) - - print('Zipping done! Uploading...') - - TRANSFER.upload_file(f'/tmp/{filename}', 'docker-lambda', - f'fs/{filename}', extra_args={'ACL': 'public-read'}) - - print('Uploading done!') - - info = {'sys.executable': sys.executable, - 'sys.argv': sys.argv, - 'sys.path': sys.path, - 'os.getcwd': os.getcwd(), - '__file__': __file__, - 'os.environ': {k: str(v) for k, v in os.environ.items()}, - 'context': {k: str(v) for k, v in context.__dict__.items()}, - 'proc environ': subprocess.check_output( - ['sh', '-c', 'echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ']).decode('utf-8').splitlines(), - 'ps aux': subprocess.check_output( - ['bash', '-O', 'extglob', '-c', 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done']).decode('utf-8').splitlines()} - - print(json.dumps(info, indent=2)) - - return info diff --git a/dump-fs/dump-python311/handler.py b/dump-fs/dump-python311/handler.py deleted file mode 100644 index 0033d36b..00000000 --- a/dump-fs/dump-python311/handler.py +++ /dev/null @@ -1,70 +0,0 @@ -from __future__ import print_function - -import json -import os -import subprocess -import sys - -import boto3 -from boto3.s3.transfer import S3Transfer - -TRANSFER = S3Transfer(boto3.client("s3")) - - -def lambda_handler_arm64(event, context): - return lambda_handler(event, context, "arm64") - - -def lambda_handler_x86_64(event, context): - return lambda_handler(event, context, "x86_64") - - -def lambda_handler(event, context, arch): - if "cmd" in event: - return print(subprocess.check_output(["sh", "-c", event["cmd"]]).decode("utf-8")) - - filename = f"python3.11-{arch}.tgz" - - subprocess.call(["touch", f"/tmp/{filename}"]) - - subprocess.call( - [ - "sh", - "-c", - f"tar -cpzf /tmp/{filename} --numeric-owner --ignore-failed-read " + "/var/runtime /var/lang /var/rapid", - ] - ) - - print("Zipping done! Uploading...") - - TRANSFER.upload_file(f"/tmp/{filename}", "docker-lambda", f"fs/{filename}", extra_args={"ACL": "public-read"}) - - print("Uploading done!") - - info = { - "sys.executable": sys.executable, - "sys.argv": sys.argv, - "sys.path": sys.path, - "os.getcwd": os.getcwd(), - "__file__": __file__, - "os.environ": {k: str(v) for k, v in os.environ.items()}, - "context": {k: str(v) for k, v in context.__dict__.items()}, - "proc environ": subprocess.check_output(["sh", "-c", "echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ"]) - .decode("utf-8") - .splitlines(), - "ps aux": subprocess.check_output( - [ - "bash", - "-O", - "extglob", - "-c", - "for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done", - ] - ) - .decode("utf-8") - .splitlines(), - } - - print(json.dumps(info, indent=2)) - - return info diff --git a/dump-fs/dump-python38/handler.py b/dump-fs/dump-python38/handler.py deleted file mode 100644 index aa2d3674..00000000 --- a/dump-fs/dump-python38/handler.py +++ /dev/null @@ -1,50 +0,0 @@ -from __future__ import print_function - -import os -import sys -import subprocess -import json -import boto3 -from boto3.s3.transfer import S3Transfer - -TRANSFER = S3Transfer(boto3.client('s3')) - -def lambda_handler_arm64(event, context): - return lambda_handler(event, context, "arm64") - -def lambda_handler_x86_64(event, context): - return lambda_handler(event, context, "x86_64") - -def lambda_handler(event, context, arch): - if 'cmd' in event: - return print(subprocess.check_output(['sh', '-c', event['cmd']]).decode('utf-8')) - - filename = f'python3.8-{arch}.tgz' - - subprocess.call(['touch', f'/tmp/{filename}']) - - subprocess.call(['sh', '-c', f'tar -cpzf /tmp/{filename} --numeric-owner --ignore-failed-read ' + - '/var/runtime /var/lang /var/rapid']) - - print('Zipping done! Uploading...') - - TRANSFER.upload_file(f'/tmp/{filename}', 'docker-lambda', - f'fs/{filename}', extra_args={'ACL': 'public-read'}) - - print('Uploading done!') - - info = {'sys.executable': sys.executable, - 'sys.argv': sys.argv, - 'sys.path': sys.path, - 'os.getcwd': os.getcwd(), - '__file__': __file__, - 'os.environ': {k: str(v) for k, v in os.environ.items()}, - 'context': {k: str(v) for k, v in context.__dict__.items()}, - 'proc environ': subprocess.check_output( - ['sh', '-c', 'echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ']).decode('utf-8').splitlines(), - 'ps aux': subprocess.check_output( - ['bash', '-O', 'extglob', '-c', 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done']).decode('utf-8').splitlines()} - - print(json.dumps(info, indent=2)) - - return info diff --git a/dump-fs/dump-python39/handler.py b/dump-fs/dump-python39/handler.py deleted file mode 100644 index 11b68cc7..00000000 --- a/dump-fs/dump-python39/handler.py +++ /dev/null @@ -1,50 +0,0 @@ -from __future__ import print_function - -import os -import sys -import subprocess -import json -import boto3 -from boto3.s3.transfer import S3Transfer - -TRANSFER = S3Transfer(boto3.client('s3')) - -def lambda_handler_arm64(event, context): - return lambda_handler(event, context, "arm64") - -def lambda_handler_x86_64(event, context): - return lambda_handler(event, context, "x86_64") - -def lambda_handler(event, context, arch): - if 'cmd' in event: - return print(subprocess.check_output(['sh', '-c', event['cmd']]).decode('utf-8')) - - filename = f'python3.9-{arch}.tgz' - - subprocess.call(['touch', f'/tmp/{filename}']) - - subprocess.call(['sh', '-c', f'tar -cpzf /tmp/{filename} --numeric-owner --ignore-failed-read ' + - '/var/runtime /var/lang /var/rapid']) - - print('Zipping done! Uploading...') - - TRANSFER.upload_file(f'/tmp/{filename}', 'docker-lambda', - f'fs/{filename}', extra_args={'ACL': 'public-read'}) - - print('Uploading done!') - - info = {'sys.executable': sys.executable, - 'sys.argv': sys.argv, - 'sys.path': sys.path, - 'os.getcwd': os.getcwd(), - '__file__': __file__, - 'os.environ': {k: str(v) for k, v in os.environ.items()}, - 'context': {k: str(v) for k, v in context.__dict__.items()}, - 'proc environ': subprocess.check_output( - ['sh', '-c', 'echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ']).decode('utf-8').splitlines(), - 'ps aux': subprocess.check_output( - ['bash', '-O', 'extglob', '-c', 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done']).decode('utf-8').splitlines()} - - print(json.dumps(info, indent=2)) - - return info diff --git a/dump-fs/dump-ruby27/handler.rb b/dump-fs/dump-ruby27/handler.rb deleted file mode 100644 index 513253f2..00000000 --- a/dump-fs/dump-ruby27/handler.rb +++ /dev/null @@ -1,40 +0,0 @@ -require 'json' -require 'aws-sdk-s3' - -S3_CLIENT = Aws::S3::Client.new({region: "eu-central-1"}) - -def lambda_handler(event, context, arch) - filename = "ruby2.7-#{arch}.tgz" - - puts `touch /tmp/#{filename}` - puts `tar -cpzf /tmp/#{filename} --numeric-owner --ignore-failed-read /var/runtime /var/lang /var/rapid` - - File.open("/tmp/#{filename}", 'rb') do |file| - S3_CLIENT.put_object({ - body: file, - bucket: 'docker-lambda', - key: "fs/#{filename}", - acl: 'public-read', - }) - end - - info = { - 'ENV' => ENV.to_hash, - 'context' => context.instance_variables.each_with_object({}) { |k, h| h[k] = context.instance_variable_get k }, - 'ps aux' => `bash -O extglob -c 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done'`, - 'proc environ' => `xargs -n 1 -0 < /proc/1/environ`, - } - - print JSON.pretty_generate(info) - - return info -end - - -def lambda_handler_x86_64(event:, context:) - return lambda_handler event, context, "x86_64" -end - -def lambda_handler_arm64(event:, context:) - return lambda_handler event, context, "arm64" -end diff --git a/dump-fs/dump-ruby32/handler.rb b/dump-fs/dump-ruby32/handler.rb deleted file mode 100644 index 3c530111..00000000 --- a/dump-fs/dump-ruby32/handler.rb +++ /dev/null @@ -1,40 +0,0 @@ -require 'json' -require 'aws-sdk-s3' - -S3_CLIENT = Aws::S3::Client.new({region: "eu-central-1"}) - -def lambda_handler(event, context, arch) - filename = "ruby3.2-#{arch}.tgz" - - puts `touch /tmp/#{filename}` - puts `tar -cpzf /tmp/#{filename} --numeric-owner --ignore-failed-read /var/runtime /var/lang /var/rapid` - - File.open("/tmp/#{filename}", 'rb') do |file| - S3_CLIENT.put_object({ - body: file, - bucket: 'docker-lambda', - key: "fs/#{filename}", - acl: 'public-read', - }) - end - - info = { - 'ENV' => ENV.to_hash, - 'context' => context.instance_variables.each_with_object({}) { |k, h| h[k] = context.instance_variable_get k }, - 'ps aux' => `bash -O extglob -c 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done'`, - 'proc environ' => `xargs -n 1 -0 < /proc/1/environ`, - } - - print JSON.pretty_generate(info) - - return info -end - - -def lambda_handler_x86_64(event:, context:) - return lambda_handler event, context, "x86_64" -end - -def lambda_handler_arm64(event:, context:) - return lambda_handler event, context, "arm64" -end diff --git a/dump-fs/layer-tar-arm64.zip b/dump-fs/layer-tar-arm64.zip deleted file mode 100644 index b87c0bd4..00000000 Binary files a/dump-fs/layer-tar-arm64.zip and /dev/null differ diff --git a/dump-fs/layer-tar-x86_64.zip b/dump-fs/layer-tar-x86_64.zip deleted file mode 100644 index 2686e0af..00000000 Binary files a/dump-fs/layer-tar-x86_64.zip and /dev/null differ diff --git a/dump-fs/serverless.yml b/dump-fs/serverless.yml deleted file mode 100644 index e35142ff..00000000 --- a/dump-fs/serverless.yml +++ /dev/null @@ -1,365 +0,0 @@ -service: docker-lambda-dump - -frameworkVersion: "3" - -provider: - name: aws - lambdaHashingVersion: 20201221 - region: eu-west-1 - profile: lupine - timeout: 900 - versionFunctions: false - iamRoleStatements: - - Effect: Allow - Action: - - "s3:*" - Resource: - - "*" - -package: - individually: true - -layers: - # Generate those using the script in the `tar-find-layer` directory. - # Use two separate machines (x86_64 and arm64) for optimal perfomance, - # or use Docker with qemu and emulate one of the archs on your machine. - TarX86: - package: - artifact: layer-tar-x86_64.zip - TarARM: - package: - artifact: layer-tar-arm64.zip - -functions: - dump-base-2-x86_64: - handler: dump-base-2/handler.handler_x86_64 - package: - patterns: - - "!**" - - "dump-base-2/**" - runtime: nodejs18.x - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-base-2-arm64: - handler: dump-base-2/handler.handler_arm64 - package: - patterns: - - "!**" - - "dump-base-2/**" - runtime: nodejs18.x - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-python38-x86_64: - handler: dump-python38/handler.lambda_handler_x86_64 - package: - patterns: - - "!**" - - "dump-python38/**" - runtime: python3.8 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-python38-arm64: - handler: dump-python38/handler.lambda_handler_arm64 - package: - patterns: - - "!**" - - "dump-python38/**" - runtime: python3.8 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-python39-x86_64: - handler: dump-python39/handler.lambda_handler_x86_64 - package: - patterns: - - "!**" - - "dump-python39/**" - runtime: python3.9 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-python39-arm64: - handler: dump-python39/handler.lambda_handler_arm64 - package: - patterns: - - "!**" - - "dump-python39/**" - runtime: python3.9 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-python310-x86_64: - handler: dump-python310/handler.lambda_handler_x86_64 - package: - patterns: - - "!**" - - "dump-python310/**" - runtime: python3.10 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-python310-arm64: - handler: dump-python310/handler.lambda_handler_arm64 - package: - patterns: - - "!**" - - "dump-python310/**" - runtime: python3.10 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-python311-x86_64: - handler: dump-python311/handler.lambda_handler_x86_64 - package: - patterns: - - "!**" - - "dump-python311/**" - runtime: python3.11 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-python311-arm64: - handler: dump-python311/handler.lambda_handler_arm64 - package: - patterns: - - "!**" - - "dump-python311/**" - runtime: python3.11 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-ruby27-x86_64: - handler: dump-ruby27/handler.lambda_handler_x86_64 - package: - patterns: - - "!**" - - "dump-ruby27/**" - runtime: ruby2.7 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-ruby27-arm64: - handler: dump-ruby27/handler.lambda_handler_arm64 - package: - patterns: - - "!**" - - "dump-ruby27/**" - runtime: ruby2.7 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-ruby32-x86_64: - handler: dump-ruby32/handler.lambda_handler_x86_64 - package: - patterns: - - "!**" - - "dump-ruby32/**" - runtime: ruby3.2 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-ruby32-arm64: - handler: dump-ruby32/handler.lambda_handler_arm64 - package: - patterns: - - "!**" - - "dump-ruby32/**" - runtime: ruby3.2 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-dotnetcore31-x86_64: - handler: dump_dotnetcore31::dump_dotnetcore31.Function::FunctionHandler_x86_64 - package: - artifact: bin/Release/dump-dotnetcore31/handler-x86_64.zip - runtime: dotnetcore3.1 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-dotnetcore31-arm64: - handler: dump_dotnetcore31::dump_dotnetcore31.Function::FunctionHandler_arm64 - package: - artifact: bin/Release/dump-dotnetcore31/handler-arm64.zip - runtime: dotnetcore3.1 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-dotnet6-x86_64: - handler: dump_dotnet6::dump_dotnet6.Function::FunctionHandler_x86_64 - package: - artifact: bin/Release/dump-dotnet6/handler-x86_64.zip - runtime: dotnet6 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-dotnet6-arm64: - handler: dump_dotnet6::dump_dotnet6.Function::FunctionHandler_arm64 - package: - artifact: bin/Release/dump-dotnet6/handler-arm64.zip - runtime: dotnet6 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-java8al2-x86_64: - handler: pl.lupin.lambda.DumpJava8AL2_x86_64 - package: - artifact: bin/dump-java8.al2-x86_64.zip - runtime: java8.al2 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-java8al2-arm64: - handler: pl.lupin.lambda.DumpJava8AL2_arm64 - package: - artifact: bin/dump-java8.al2-arm64.zip - runtime: java8.al2 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-java11-x86_64: - handler: pl.lupin.lambda.DumpJava11_x86_64 - package: - artifact: bin/dump-java11-x86_64.zip - runtime: java11 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-java11-arm64: - handler: pl.lupin.lambda.DumpJava11_arm64 - package: - artifact: bin/dump-java11-arm64.zip - runtime: java11 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-java17-x86_64: - handler: pl.lupin.lambda.DumpJava17_x86_64 - package: - artifact: bin/dump-java17-x86_64.zip - runtime: java17 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-java17-arm64: - handler: pl.lupin.lambda.DumpJava17_arm64 - package: - artifact: bin/dump-java17-arm64.zip - runtime: java17 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-providedal2-x86_64: - handler: bin/DumpProvidedAL2-x86_64 - package: - artifact: bin/DumpProvidedAL2-x86_64.zip - runtime: provided.al2 - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-providedal2-arm64: - handler: bin/DumpProvidedAL2-arm64 - package: - artifact: bin/DumpProvidedAL2-arm64.zip - runtime: provided.al2 - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-nodejs12x-x86_64: - handler: dump-nodejs12x/handler.handler_x86_64 - package: - patterns: - - "!**" - - "dump-nodejs12x/**" - runtime: nodejs12.x - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-nodejs12x-arm64: - handler: dump-nodejs12x/handler.handler_arm64 - package: - patterns: - - "!**" - - "dump-nodejs12x/**" - runtime: nodejs12.x - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-nodejs14x-x86_64: - handler: dump-nodejs14x/handler.handler_x86_64 - package: - patterns: - - "!**" - - "dump-nodejs14x/**" - runtime: nodejs14.x - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-nodejs14x-arm64: - handler: dump-nodejs14x/handler.handler_arm64 - package: - patterns: - - "!**" - - "dump-nodejs14x/**" - runtime: nodejs14.x - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-nodejs16x-x86_64: - handler: dump-nodejs16x/handler.handler_x86_64 - package: - patterns: - - "!**" - - "dump-nodejs16x/**" - runtime: nodejs16.x - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-nodejs16x-arm64: - handler: dump-nodejs16x/handler.handler_arm64 - package: - patterns: - - "!**" - - "dump-nodejs16x/**" - runtime: nodejs16.x - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } - - dump-nodejs18x-x86_64: - handler: dump-nodejs18x/handler.handler_x86_64 - package: - patterns: - - "!**" - - "dump-nodejs18x/**" - runtime: nodejs18.x - architecture: x86_64 - layers: - - { Ref: TarX86LambdaLayer } - dump-nodejs18x-arm64: - handler: dump-nodejs18x/handler.handler_arm64 - package: - patterns: - - "!**" - - "dump-nodejs18x/**" - runtime: nodejs18.x - architecture: arm64 - layers: - - { Ref: TarARMLambdaLayer } diff --git a/examples/docker-file/Dockerfile b/examples/docker-file/Dockerfile deleted file mode 100644 index 43c8a901..00000000 --- a/examples/docker-file/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM mlupin/docker-lambda:nodejs8.10 - -ENV AWS_LAMBDA_FUNCTION_NAME=docker-build \ - AWS_LAMBDA_FUNCTION_VERSION=2 \ - AWS_LAMBDA_FUNCTION_MEMORY_SIZE=384 \ - AWS_LAMBDA_FUNCTION_TIMEOUT=60 \ - AWS_REGION=us-east-1 - -COPY . . - -# If we want to match permissions in /var/task exactly... -USER root -RUN chown -R slicer:497 . -USER sbx_user1051 diff --git a/examples/docker-file/index.js b/examples/docker-file/index.js deleted file mode 100644 index 064485d7..00000000 --- a/examples/docker-file/index.js +++ /dev/null @@ -1,35 +0,0 @@ -var execSync = require('child_process').execSync - -// Intended to show that a built image will have the correct permissions in /var/task -// docker build -t build-test . && docker run --rm build-test - -exports.handler = function(event, context, cb) { - - console.log(process.execPath) - console.log(process.execArgv) - console.log(process.argv) - console.log(process.cwd()) - console.log(process.mainModule.filename) - console.log(__filename) - console.log(process.env) - console.log(process.getuid()) - console.log(process.getgid()) - console.log(process.geteuid()) - console.log(process.getegid()) - console.log(process.getgroups()) - console.log(process.umask()) - - console.log(event) - - console.log(context) - - context.callbackWaitsForEmptyEventLoop = false - - console.log(context.getRemainingTimeInMillis()) - - console.log(execSync('ls -l /var/task', {encoding: 'utf8'})) - - cb() -} - - diff --git a/examples/docker-file/package.json b/examples/docker-file/package.json deleted file mode 100644 index cc84742e..00000000 --- a/examples/docker-file/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "docker-build", - "version": "1.0.0", - "main": "index.js", - "engines" : { - "node" : ">=0.11.12" - }, - "scripts": { - "test": "docker build -t build-test . && docker run --rm build-test" - } -} diff --git a/examples/dotnet6/Function.cs b/examples/dotnet6/Function.cs deleted file mode 100644 index e4342b89..00000000 --- a/examples/dotnet6/Function.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Compile with: -// docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:build-dotnet6 dotnet publish -c Release -o pub - -// Run with: -// docker run --rm -v "$PWD"/pub:/var/task mlupin/docker-lambda:dotnet6 test::test.Function::FunctionHandler '{"some": "event"}' - -using System; -using System.Collections; -using Amazon.Lambda.Core; - -[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] - -namespace test -{ - public class Function - { - public string FunctionHandler(object inputEvent, ILambdaContext context) - { - Console.WriteLine($"inputEvent: {inputEvent}"); - Console.WriteLine($"RemainingTime: {context.RemainingTime}"); - - foreach (DictionaryEntry kv in Environment.GetEnvironmentVariables()) - { - Console.WriteLine($"{kv.Key}={kv.Value}"); - } - - return "Hello World!"; - } - } -} diff --git a/examples/dotnet6/README.md b/examples/dotnet6/README.md deleted file mode 100644 index c8cd0b2e..00000000 --- a/examples/dotnet6/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# .NET 6.0 docker-lambda example - -```sh -# Will place the compiled code in `./pub` -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:build-dotnet6 dotnet publish -c Release -o pub - -# Then you can run using that as the task directory -docker run --rm -v "$PWD"/pub:/var/task mlupin/docker-lambda:dotnet6 test::test.Function::FunctionHandler '{"some": "event"}' -``` diff --git a/examples/dotnet6/test.csproj b/examples/dotnet6/test.csproj deleted file mode 100644 index 85b7d0da..00000000 --- a/examples/dotnet6/test.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net6.0 - true - - - - - - - - diff --git a/examples/dotnet6/test.sln b/examples/dotnet6/test.sln deleted file mode 100644 index 2de30541..00000000 --- a/examples/dotnet6/test.sln +++ /dev/null @@ -1,17 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "test.csproj", "{0A83D120-2336-4F30-86F1-DC045C3C9B90}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0A83D120-2336-4F30-86F1-DC045C3C9B90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A83D120-2336-4F30-86F1-DC045C3C9B90}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A83D120-2336-4F30-86F1-DC045C3C9B90}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A83D120-2336-4F30-86F1-DC045C3C9B90}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/examples/dotnetcore3.1/Function.cs b/examples/dotnetcore3.1/Function.cs deleted file mode 100644 index 84632457..00000000 --- a/examples/dotnetcore3.1/Function.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Compile with: -// docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:build-dotnetcore3.1 dotnet publish -c Release -o pub - -// Run with: -// docker run --rm -v "$PWD"/pub:/var/task mlupin/docker-lambda:dotnetcore3.1 test::test.Function::FunctionHandler '{"some": "event"}' - -using System; -using System.Collections; -using Amazon.Lambda.Core; - -[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] - -namespace test -{ - public class Function - { - public string FunctionHandler(object inputEvent, ILambdaContext context) - { - Console.WriteLine($"inputEvent: {inputEvent}"); - Console.WriteLine($"RemainingTime: {context.RemainingTime}"); - - foreach (DictionaryEntry kv in Environment.GetEnvironmentVariables()) - { - Console.WriteLine($"{kv.Key}={kv.Value}"); - } - - return "Hello World!"; - } - } -} diff --git a/examples/dotnetcore3.1/README.md b/examples/dotnetcore3.1/README.md deleted file mode 100644 index e6c35aad..00000000 --- a/examples/dotnetcore3.1/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# .NET Core 3.1 docker-lambda example - -```sh -# Will place the compiled code in `./pub` -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:build-dotnetcore3.1 dotnet publish -c Release -o pub - -# Then you can run using that as the task directory -docker run --rm -v "$PWD"/pub:/var/task mlupin/docker-lambda:dotnetcore3.1 test::test.Function::FunctionHandler '{"some": "event"}' -``` diff --git a/examples/dotnetcore3.1/test.csproj b/examples/dotnetcore3.1/test.csproj deleted file mode 100644 index ade4bc4c..00000000 --- a/examples/dotnetcore3.1/test.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - netcoreapp3.1 - true - - - - - - - - diff --git a/examples/dotnetcore3.1/test.sln b/examples/dotnetcore3.1/test.sln deleted file mode 100644 index 2de30541..00000000 --- a/examples/dotnetcore3.1/test.sln +++ /dev/null @@ -1,17 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "test.csproj", "{0A83D120-2336-4F30-86F1-DC045C3C9B90}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0A83D120-2336-4F30-86F1-DC045C3C9B90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A83D120-2336-4F30-86F1-DC045C3C9B90}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A83D120-2336-4F30-86F1-DC045C3C9B90}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A83D120-2336-4F30-86F1-DC045C3C9B90}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/examples/go1.x/go.mod b/examples/go1.x/go.mod deleted file mode 100644 index bcc119a6..00000000 --- a/examples/go1.x/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module handler - -require github.com/aws/aws-lambda-go v1.13.3 - -go 1.15 diff --git a/examples/go1.x/go.sum b/examples/go1.x/go.sum deleted file mode 100644 index 01282a39..00000000 --- a/examples/go1.x/go.sum +++ /dev/null @@ -1,13 +0,0 @@ -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/aws/aws-lambda-go v1.13.3 h1:SuCy7H3NLyp+1Mrfp+m80jcbi9KYWAs9/BXwppwRDzY= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/examples/go1.x/handler.go b/examples/go1.x/handler.go deleted file mode 100644 index 58df533b..00000000 --- a/examples/go1.x/handler.go +++ /dev/null @@ -1,27 +0,0 @@ -// Compile with: -// docker run --rm -v "$PWD":/go/src/handler mlupin/docker-lambda:build-go1.x sh -c 'go mod download && go build handler.go' - -// Run with: -// docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:go1.x handler '{"Records": []}' - -package main - -import ( - "context" - "fmt" - - "github.com/aws/aws-lambda-go/events" - "github.com/aws/aws-lambda-go/lambda" -) - -func handleRequest(ctx context.Context, event events.S3Event) (string, error) { - fmt.Println(ctx) - - fmt.Println(event) - - return "Hello World!", nil -} - -func main() { - lambda.Start(handleRequest) -} diff --git a/examples/java/.classpath b/examples/java/.classpath deleted file mode 100644 index 4857be40..00000000 --- a/examples/java/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/examples/java/.project b/examples/java/.project deleted file mode 100644 index 123c68bd..00000000 --- a/examples/java/.project +++ /dev/null @@ -1,34 +0,0 @@ - - - example-handler - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.buildship.core.gradleprojectbuilder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.buildship.core.gradleprojectnature - - - - 1599680497045 - - 30 - - org.eclipse.core.resources.regexFilterMatcher - node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ - - - - diff --git a/examples/java/.settings/org.eclipse.buildship.core.prefs b/examples/java/.settings/org.eclipse.buildship.core.prefs deleted file mode 100644 index 90865998..00000000 --- a/examples/java/.settings/org.eclipse.buildship.core.prefs +++ /dev/null @@ -1,13 +0,0 @@ -arguments= -auto.sync=false -build.scans.enabled=false -connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(6.3)) -connection.project.dir= -eclipse.preferences.version=1 -gradle.user.home= -java.home= -jvm.arguments= -offline.mode=false -override.workspace.settings=true -show.console.view=true -show.executions.view=true diff --git a/examples/java/.settings/org.eclipse.core.resources.prefs b/examples/java/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 2b763404..00000000 --- a/examples/java/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 diff --git a/examples/java/.settings/org.eclipse.jdt.core.prefs b/examples/java/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 2f5cc74c..00000000 --- a/examples/java/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/examples/java/README.md b/examples/java/README.md deleted file mode 100644 index c606302b..00000000 --- a/examples/java/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Java 8 docker-lambda example - -Run with: - -```sh -# Will place the compiled code in `./build/docker` -docker run --rm -v "$PWD":/app -w /app gradle:6.0 gradle build - -# Then you can run using that directory as the task directory -docker run --rm -v "$PWD/build/docker":/var/task mlupin/docker-lambda:java8.al2 pl.lupin.lambda.ExampleHandler '{"some": "event"}' - -# OR -docker run --rm -v "$PWD/build/docker":/var/task mlupin/docker-lambda:java11 pl.lupin.lambda.ExampleHandler '{"some": "event"}' -``` diff --git a/examples/java/build.gradle b/examples/java/build.gradle deleted file mode 100644 index 6d496c49..00000000 --- a/examples/java/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -apply plugin: 'java' - -sourceCompatibility = '1.8' -targetCompatibility = '1.8' - -repositories { - mavenCentral() -} - -dependencies { - implementation ( - 'com.amazonaws:aws-lambda-java-core:1.2.0', - 'com.amazonaws:aws-lambda-java-events:2.2.7' - ) -} - -task buildZip(type: Zip) { - from compileJava - from processResources - into('lib') { - from configurations.runtimeClasspath - } -} - -task buildDocker(type: Copy) { - from compileJava - from processResources - into('lib') { - from configurations.runtimeClasspath - } - into 'build/docker' -} - -build.dependsOn buildDocker diff --git a/examples/java/src/main/java/pl/lupin/lambda/ExampleHandler.java b/examples/java/src/main/java/pl/lupin/lambda/ExampleHandler.java deleted file mode 100644 index 9bd62f47..00000000 --- a/examples/java/src/main/java/pl/lupin/lambda/ExampleHandler.java +++ /dev/null @@ -1,49 +0,0 @@ -// Run with: -// docker run --rm -v "$PWD/build/docker":/var/task mlupin/docker-lambda:java8 pl.lupin.lambda.ExampleHandler - -package pl.lupin.lambda; - -import java.io.File; -import java.lang.management.ManagementFactory; -import java.util.Map; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.LambdaLogger; -import com.amazonaws.services.lambda.runtime.RequestHandler; - -public class ExampleHandler implements RequestHandler { - - @Override - public String handleRequest(Object input, Context context) { - // throw new RuntimeException("whatever"); - LambdaLogger logger = context.getLogger(); - logger.log(ManagementFactory.getRuntimeMXBean().getInputArguments().toString() + "\n"); - logger.log(System.getProperty("sun.java.command") + "\n"); - logger.log(System.getProperty("java.home") + "\n"); - logger.log(System.getProperty("java.library.path") + "\n"); - logger.log(System.getProperty("java.class.path") + "\n"); - logger.log(System.getProperty("user.dir") + "\n"); - logger.log(System.getProperty("user.home") + "\n"); - logger.log(System.getProperty("user.name") + "\n"); - logger.log(new File(".").getAbsolutePath() + "\n"); - Map env = System.getenv(); - for (String envName : env.keySet()) { - logger.log(envName + "=" + env.get(envName) + "\n"); - } - logger.log(context.getAwsRequestId() + "\n"); - logger.log(context.getFunctionName() + "\n"); - logger.log(context.getFunctionVersion() + "\n"); - logger.log(context.getInvokedFunctionArn() + "\n"); - logger.log(context.getLogGroupName() + "\n"); - logger.log(context.getLogStreamName() + "\n"); - if (context.getIdentity() != null) { - logger.log(context.getIdentity().getIdentityId() + "\n"); - logger.log(context.getIdentity().getIdentityPoolId() + "\n"); - } - logger.log(context.getClientContext() + "\n"); - logger.log(context.getMemoryLimitInMB() + "\n"); - logger.log(context.getRemainingTimeInMillis() + "\n"); - logger.log(input + "\n"); - return "Hello World!"; - } -} diff --git a/examples/nodejs-native-module/index.js b/examples/nodejs-native-module/index.js deleted file mode 100644 index e562eae5..00000000 --- a/examples/nodejs-native-module/index.js +++ /dev/null @@ -1,17 +0,0 @@ -var bcrypt = require('bcrypt') - -// Hashed password for "lamda-docker" -var HASHED_PASS = '$2a$10$w9.BRCsnWXv5f.eUGD2fieT.wfLV9.rSJFC/2bzz3sahJdCLaYs0K' - -exports.handler = function(event, context, cb) { - console.log('hello?') - bcrypt.compare(event.password, HASHED_PASS, function(err, res) { - cb(err, res ? 'Matches!' : 'NopeNopeNope') - }) -} - -// Just to test this locally: -if (require.main === module) { - exports.handler({password: 'lambda-docker'}, {}, console.log) - exports.handler({password: 'lambda-mocker'}, {}, console.log) -} diff --git a/examples/nodejs-native-module/package-lock.json b/examples/nodejs-native-module/package-lock.json deleted file mode 100644 index 4cf60628..00000000 --- a/examples/nodejs-native-module/package-lock.json +++ /dev/null @@ -1,1009 +0,0 @@ -{ - "name": "module-native", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "module-native", - "version": "1.0.0", - "dependencies": { - "bcrypt": "^5.0.0" - } - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz", - "integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==", - "dependencies": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.1", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "rimraf": "^3.0.2", - "semver": "^7.3.4", - "tar": "^6.1.0" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/bcrypt": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", - "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" - }, - "node_modules/node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - }, - "dependencies": { - "@mapbox/node-pre-gyp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz", - "integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==", - "requires": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.1", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "rimraf": "^3.0.2", - "semver": "^7.3.4", - "tar": "^6.1.0" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "bcrypt": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", - "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^3.1.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" - }, - "node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } -} diff --git a/examples/nodejs-native-module/package.json b/examples/nodejs-native-module/package.json deleted file mode 100644 index c22f2ea2..00000000 --- a/examples/nodejs-native-module/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "module-native", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "build": "docker run --rm -v \"$PWD\":/var/task mlupin/docker-lambda:nodejs12.x-build npm rebuild --unsafe-perm --build-from-source", - "test": "node test.js" - }, - "dependencies": { - "bcrypt": "^5.0.0" - } -} diff --git a/examples/nodejs-native-module/test.js b/examples/nodejs-native-module/test.js deleted file mode 100644 index 73b2bfd8..00000000 --- a/examples/nodejs-native-module/test.js +++ /dev/null @@ -1,9 +0,0 @@ -var dockerLambda = require('../..') - -var match = dockerLambda({ event: { password: 'lambda-docker' }, dockerImage: 'mlupin/docker-lambda:nodejs12.x' }) - -console.log(match === 'Matches!' ? 'Match Passed' : 'Match Failed: ' + match) - -var nonMatch = dockerLambda({ event: { password: 'lambda-mocker' }, dockerImage: 'mlupin/docker-lambda:nodejs12.x' }) - -console.log(nonMatch === 'NopeNopeNope' ? 'Non-Match Passed' : 'Non-Match Failed: ' + nonMatch) diff --git a/examples/nodejs/index.js b/examples/nodejs/index.js deleted file mode 100644 index ad6cac1c..00000000 --- a/examples/nodejs/index.js +++ /dev/null @@ -1,26 +0,0 @@ -// Just a test lambda, run with: -// docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:nodejs8.10 - -exports.handler = async (event, context) => { - console.log(process.execPath) - console.log(process.execArgv) - console.log(process.argv) - console.log(process.cwd()) - console.log(process.mainModule.filename) - console.log(__filename) - console.log(process.env) - console.log(process.getuid()) - console.log(process.getgid()) - console.log(process.geteuid()) - console.log(process.getegid()) - console.log(process.getgroups()) - console.log(process.umask()) - - console.log(event) - - console.log(context) - - context.callbackWaitsForEmptyEventLoop = false - - console.log(context.getRemainingTimeInMillis()) -} diff --git a/examples/nodejs/package.json b/examples/nodejs/package.json deleted file mode 100644 index eabfd13a..00000000 --- a/examples/nodejs/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "docker-run", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "test": "docker run --rm -v \"$PWD\":/var/task mlupin/docker-lambda:nodejs8.10 index.handler '{\"some\": \"event\"}'" - } -} diff --git a/examples/post.lua b/examples/post.lua deleted file mode 100644 index 9066aac1..00000000 --- a/examples/post.lua +++ /dev/null @@ -1,5 +0,0 @@ --- Run with: --- wrk -s post.lua 'http://localhost:9001/2015-03-31/functions/myfunction/invocations' -wrk.method = "POST" -wrk.body = "{}" -wrk.headers["Content-Type"] = "application/json" diff --git a/examples/provided.al2/bootstrap.go b/examples/provided.al2/bootstrap.go deleted file mode 100644 index 816df9ae..00000000 --- a/examples/provided.al2/bootstrap.go +++ /dev/null @@ -1,27 +0,0 @@ -// Compile with: -// docker run --rm -v "$PWD":/go/src/handler mlupin/docker-lambda:build-go1.x sh -c 'go mod download && go build -tags lambda.norpc bootstrap.go' - -// Run with: -// docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:provided.al2 handler '{"Records": []}' - -package main - -import ( - "context" - "fmt" - - "github.com/aws/aws-lambda-go/events" - "github.com/aws/aws-lambda-go/lambda" -) - -func handleRequest(ctx context.Context, event events.S3Event) (string, error) { - fmt.Println(ctx) - - fmt.Println(event) - - return "Hello World!", nil -} - -func main() { - lambda.Start(handleRequest) -} diff --git a/examples/provided.al2/go.mod b/examples/provided.al2/go.mod deleted file mode 100644 index 4fc94c95..00000000 --- a/examples/provided.al2/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module bootstrap - -require ( - github.com/aws/aws-lambda-go v1.19.0 - github.com/aws/aws-sdk-go-v2 v0.24.0 -) - -go 1.15 diff --git a/examples/provided.al2/go.sum b/examples/provided.al2/go.sum deleted file mode 100644 index 8da6f30f..00000000 --- a/examples/provided.al2/go.sum +++ /dev/null @@ -1,27 +0,0 @@ -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/aws/aws-lambda-go v1.19.0 h1:Cn28zA8Mic4NpR7p4IlaEW2srI+U3+I7tRqjFMpt/fs= -github.com/aws/aws-lambda-go v1.19.0/go.mod h1:jJmlefzPfGnckuHdXX7/80O3BvUUi12XOkbv4w9SGLU= -github.com/aws/aws-sdk-go-v2 v0.24.0/go.mod h1:2LhT7UgHOXK3UXONKI5OMgIyoQL6zTAw/jwIeX6yqzw= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/examples/python/lambda_function.py b/examples/python/lambda_function.py deleted file mode 100644 index 1ec21e28..00000000 --- a/examples/python/lambda_function.py +++ /dev/null @@ -1,33 +0,0 @@ -from __future__ import print_function -import os -import sys -import subprocess - -# Just a test lambda, run with: -# docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:python2.7 -# OR -# docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:python3.6 -# OR -# docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:python3.7 lambda_function.lambda_handler - -def lambda_handler(event, context): - context.log('Hello!') - context.log('Hmmm, does not add newlines in 3.7?') - context.log('\n') - - print(sys.executable) - print(sys.argv) - print(os.getcwd()) - print(__file__) - print(os.environ) - print(context.__dict__) - - return { - "executable": str(sys.executable), - "sys.argv": str(sys.argv), - "os.getcwd": str(os.getcwd()), - "__file__": str(__file__), - "os.environ": str(os.environ), - "context.__dict__": str(context.__dict__), - "event": event - } diff --git a/examples/ruby/lambda_function.rb b/examples/ruby/lambda_function.rb deleted file mode 100644 index 780466ef..00000000 --- a/examples/ruby/lambda_function.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'pp' - -# docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:ruby2.5 lambda_function.lambda_handler -# docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:ruby2.7 lambda_function.lambda_handler - -def lambda_handler(event:, context:) - info = { - 'event' => event, - 'ENV' => ENV.to_hash, - 'context' => context.instance_variables.each_with_object({}) { |k, h| h[k] = context.instance_variable_get k }, - 'ps aux' => `bash -O extglob -c 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done'`, - 'proc environ' => `xargs -n 1 -0 < /proc/1/environ`, - } - - pp info - - return info -end diff --git a/examples/terminal.png b/examples/terminal.png deleted file mode 100644 index db2d051e..00000000 Binary files a/examples/terminal.png and /dev/null differ diff --git a/examples/test-all.sh b/examples/test-all.sh deleted file mode 100755 index e914d240..00000000 --- a/examples/test-all.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export EXAMPLES_DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")") - -cd ${EXAMPLES_DIR}/nodejs -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:nodejs12.x index.handler -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:nodejs14.x index.handler -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:nodejs16.x index.handler -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:nodejs18.x index.handler - -cd ${EXAMPLES_DIR}/nodejs-native-module -npm install -npm run build -npm test - -cd ${EXAMPLES_DIR}/python -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:python3.8 lambda_function.lambda_handler -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:python3.9 lambda_function.lambda_handler -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:python3.10 lambda_function.lambda_handler -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:python3.11 lambda_function.lambda_handler - -cd ${EXAMPLES_DIR}/python -docker run --rm -it mlupin/docker-lambda:python3.8-build pip install marisa-trie -docker run --rm -it mlupin/docker-lambda:python3.9-build pip install marisa-trie -docker run --rm -it mlupin/docker-lambda:python3.10-build pip install marisa-trie - -cd ${EXAMPLES_DIR}/ruby -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:ruby2.7 lambda_function.lambda_handler -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:ruby3.2 lambda_function.lambda_handler - -cd ${EXAMPLES_DIR}/java -docker run --rm -v "$PWD":/app -w /app mlupin/docker-lambda:java8.al2-build gradle build -docker run --rm -v "$PWD/build/docker":/var/task mlupin/docker-lambda:java8.al2 pl.lupin.lambda.ExampleHandler '{"some": "event"}' -docker run --rm -v "$PWD/build/docker":/var/task mlupin/docker-lambda:java11 pl.lupin.lambda.ExampleHandler '{"some": "event"}' -docker run --rm -v "$PWD/build/docker":/var/task mlupin/docker-lambda:java17 pl.lupin.lambda.ExampleHandler '{"some": "event"}' - -cd ${EXAMPLES_DIR}/dotnetcore3.1 -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:dotnetcore3.1-build dotnet publish -c Release -o pub -docker run --rm -v "$PWD"/pub:/var/task mlupin/docker-lambda:dotnetcore3.1 test::test.Function::FunctionHandler '{"some": "event"}' - -cd ${EXAMPLES_DIR}/dotnet6 -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:dotnet6-build dotnet publish -c Release -o pub -docker run --rm -v "$PWD"/pub:/var/task mlupin/docker-lambda:dotnet6 test::test.Function::FunctionHandler '{"some": "event"}' - -cd ${EXAMPLES_DIR}/provided.al2 -docker run --rm -v "$PWD":/go -w /go golang:1 sh -c 'unset GOPATH && go mod download && go build -tags lambda.norpc bootstrap.go' -docker run --rm -v "$PWD":/var/task mlupin/docker-lambda:provided.al2 handler '{"Records": []}' diff --git a/runtimes/Dockerfile b/runtimes/Dockerfile new file mode 100644 index 00000000..2c10478f --- /dev/null +++ b/runtimes/Dockerfile @@ -0,0 +1,17 @@ +ARG RUNTIME +ARG VERSION +FROM public.ecr.aws/lambda/${RUNTIME}:${VERSION} as amazonlinux + +FROM mlupin/lambda-base-2023:build + +ARG VERSION +ARG ARCH + +ENV + +COPY --from=amazonlinux /var/runtime /var/runtime +COPY --from=amazonlinux /var/lang /var/lang +COPY --from=amazonlinux /var/rapid /var/rapid + +# Add these as a separate layer as they get updated frequently +RUN \ No newline at end of file diff --git a/runtimes/Dockerfile-dotnet b/runtimes/Dockerfile-dotnet new file mode 100644 index 00000000..8dfd95f4 --- /dev/null +++ b/runtimes/Dockerfile-dotnet @@ -0,0 +1,38 @@ +ARG RUNTIME +ARG VERSION +FROM public.ecr.aws/lambda/${RUNTIME}:${VERSION} as amazonlinux + +FROM mlupin/lambda-base-2023:build + +ARG ARCH +ARG VERSION + +ENV DOTNET_ROOT=/var/lang/bin +ENV PATH=/root/.dotnet/tools:$DOTNET_ROOT:$PATH \ + LD_LIBRARY_PATH=/lib64:/usr/lib64:/var/lang/lib:$LD_LIBRARY_PATH \ + AWS_EXECUTION_ENV=AWS_Lambda_dotnet"${VERSION}" \ + AWS_EXECUTION_ARCH="${ARCH}" \ + DOTNET_SDK_VERSION=6.0.320 \ + DOTNET_CLI_TELEMETRY_OPTOUT=1 \ + NUGET_XMLDOC_MODE=skip + +COPY --from=amazonlinux /var/runtime /var/runtime +COPY --from=amazonlinux /var/lang /var/lang +COPY --from=amazonlinux /var/rapid /var/rapid + +# Add these as a separate layer as they get updated frequently +RUN yum install libicu -y && \ + curl -L https://dot.net/v1/dotnet-install.sh | bash -s -- -v $DOTNET_SDK_VERSION -i $DOTNET_ROOT && \ + mkdir /tmp/warmup && \ + cd /tmp/warmup && \ + dotnet new && \ + cd / && \ + rm -rf /tmp/warmup /tmp/NuGetScratch /tmp/.dotnet + +# Add these as a separate layer as they get updated frequently +RUN pipx install awscli && \ + pipx install aws-lambda-builders && \ + pipx install aws-sam-cli && \ + dotnet tool install --global Amazon.Lambda.Tools --version 5.9.0 + +CMD ["dotnet", "build"] \ No newline at end of file diff --git a/runtimes/Dockerfile-go b/runtimes/Dockerfile-go new file mode 100644 index 00000000..2c10478f --- /dev/null +++ b/runtimes/Dockerfile-go @@ -0,0 +1,17 @@ +ARG RUNTIME +ARG VERSION +FROM public.ecr.aws/lambda/${RUNTIME}:${VERSION} as amazonlinux + +FROM mlupin/lambda-base-2023:build + +ARG VERSION +ARG ARCH + +ENV + +COPY --from=amazonlinux /var/runtime /var/runtime +COPY --from=amazonlinux /var/lang /var/lang +COPY --from=amazonlinux /var/rapid /var/rapid + +# Add these as a separate layer as they get updated frequently +RUN \ No newline at end of file diff --git a/runtimes/Dockerfile-java b/runtimes/Dockerfile-java new file mode 100644 index 00000000..6e2221ea --- /dev/null +++ b/runtimes/Dockerfile-java @@ -0,0 +1,32 @@ +ARG RUNTIME +ARG VERSION +FROM public.ecr.aws/lambda/${RUNTIME}:${VERSION} as amazonlinux + +FROM mlupin/lambda-base-2023:build + +ARG ARCH +ARG RUNTIME +ARG VERSION +ARG GRADLE_VERSION="8.5" +ARG MAVEN_VERSION="3.9.6" + +ENV PATH=/var/lang/bin:$PATH \ + LD_LIBRARY_PATH=/lib64:/usr/lib64:/var/lang/lib:$LD_LIBRARY_PATH \ + AWS_EXECUTION_ENV=AWS_Lambda_"${RUNTIME}${VERSION}" \ + AWS_EXECUTION_ARCH="${ARCH}" +COPY --from=amazonlinux /var/runtime /var/runtime +COPY --from=amazonlinux /var/lang /var/lang +COPY --from=amazonlinux /var/rapid /var/rapid + +# Add these as a separate layer as they get updated frequently +RUN mkdir /usr/local/gradle && curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \ + unzip -qd /usr/local/gradle gradle.zip && rm gradle.zip && mkdir /usr/local/maven && \ + curl -L https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz | \ + tar -zx -C /usr/local/maven + +ENV PATH="/usr/local/gradle/gradle-8.2.1/bin:/usr/local/maven/apache-maven-3.9.3/bin:${PATH}" + +# Add these as a separate layer as they get updated frequently +RUN pipx install awscli && \ + pipx install aws-lambda-builders && \ + pipx install aws-sam-cli \ No newline at end of file diff --git a/runtimes/Dockerfile-nodejs b/runtimes/Dockerfile-nodejs new file mode 100644 index 00000000..f97dc82f --- /dev/null +++ b/runtimes/Dockerfile-nodejs @@ -0,0 +1,23 @@ +ARG RUNTIME +ARG VERSION +FROM public.ecr.aws/lambda/${RUNTIME}:${VERSION} as amazonlinux + +FROM mlupin/lambda-base-2023:build + +ARG VERSION +ARG ARCH + +ENV PATH=/var/lang/bin:$PATH \ + LD_LIBRARY_PATH=/lib64:/usr/lib64:/var/lang/lib:$LD_LIBRARY_PATH \ + AWS_EXECUTION_ENV=AWS_Lambda_nodejs"${VERSION}".x \ + AWS_EXECUTION_ARCH="${ARCH}" \ + NODE_PATH=/opt/nodejs/node"${VERSION}"/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules + +COPY --from=amazonlinux /var/runtime /var/runtime +COPY --from=amazonlinux /var/lang /var/lang +COPY --from=amazonlinux /var/rapid /var/rapid + +# Add these as a separate layer as they get updated frequently +RUN pipx install awscli && \ + pipx install aws-lambda-builders && \ + pipx install aws-sam-cli \ No newline at end of file diff --git a/runtimes/Dockerfile-python b/runtimes/Dockerfile-python new file mode 100644 index 00000000..e66f3686 --- /dev/null +++ b/runtimes/Dockerfile-python @@ -0,0 +1,29 @@ +ARG RUNTIME +ARG VERSION +FROM public.ecr.aws/lambda/${RUNTIME}:${VERSION} as amazonlinux + +FROM mlupin/lambda-base-2023:build + +ARG ARCH +ARG VERSION +ARG RUNTIME + +ENV PATH=/var/lang/bin:$PATH \ + LD_LIBRARY_PATH=/lib64:/usr/lib64:/var/lang/lib:$LD_LIBRARY_PATH \ + AWS_EXECUTION_ENV=AWS_Lambda_${RUNTIME}${VERSION} \ + AWS_EXECUTION_ARCH="${ARCH}" \ + PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ + PIPX_BIN_DIR=/var/lang/bin \ + PIPX_HOME=/var/lang/pipx + +COPY --from=amazonlinux /var/runtime /var/runtime +COPY --from=amazonlinux /var/lang /var/lang +COPY --from=amazonlinux /var/rapid /var/rapid + +# Add these as a separate layer as they get updated frequently +RUN pipx install virtualenv && \ + pipx install pipenv && \ + pipx install poetry && \ + pipx install awscli && \ + pipx install aws-lambda-builders && \ + pipx install aws-sam-cli \ diff --git a/runtimes/Dockerfile-ruby b/runtimes/Dockerfile-ruby new file mode 100644 index 00000000..e4c66079 --- /dev/null +++ b/runtimes/Dockerfile-ruby @@ -0,0 +1,28 @@ +ARG RUNTIME +ARG VERSION +FROM public.ecr.aws/lambda/${RUNTIME}:${VERSION} as amazonlinux + +FROM mlupin/lambda-base-2023:build + +ARG ARCH +ARG VERSION + +ENV PATH=/var/lang/bin:$PATH \ + LD_LIBRARY_PATH=/lib64:/usr/lib64:/var/lang/lib:$LD_LIBRARY_PATH \ + AWS_EXECUTION_ENV=AWS_Lambda_ruby3.2 \ + AWS_EXECUTION_ARCH=x86_64 \ + GEM_HOME=/var/runtime \ + GEM_PATH=/var/task/vendor/bundle/ruby/3.2.0:/opt/ruby/gems/3.2.0:/var/lang/lib/ruby/gems/3.2.0 \ + RUBYLIB=/var/task:/var/runtime/lib:/opt/ruby/lib \ + BUNDLE_SILENCE_ROOT_WARNING=1 + +COPY --from=amazonlinux /var/runtime /var/runtime +COPY --from=amazonlinux /var/lang /var/lang +COPY --from=amazonlinux /var/rapid /var/rapid + +# Add these as a separate layer as they get updated frequently +RUN pipx install awscli && \ + pipx install aws-lambda-builders && \ + pipx install aws-sam-cli && \ + gem update --system --no-document && \ + gem install --no-document bundler -v '~> 2.1' \ No newline at end of file diff --git a/runtimes/build-all-images.sh b/runtimes/build-all-images.sh deleted file mode 100755 index a9efe8ff..00000000 --- a/runtimes/build-all-images.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail -export DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")") - -export ARCH="${1-}" - -if [[ "$ARCH" != "x86_64" && "$ARCH" != "arm64" ]]; then - echo "Usage: ./build-all-images.sh x86_64|arm64" - exit 1 -fi - -for runtime in $($DIR/get-all-runtimes.sh | grep provided && $DIR/get-all-runtimes.sh | grep -v provided); do - pushd "${DIR}/${runtime}-${ARCH}" 2>&1 >/dev/null - for subdir in run build; do - pushd "$subdir" 2>&1 >/dev/null - echo "Starting ${runtime}-${ARCH}/${subdir}" - echo "Building…" - ./build.sh - echo "Publishing…" - ./publish.sh - popd 2>&1 >/dev/null - done - popd 2>&1 >/dev/null -done - -echo "All done!" diff --git a/runtimes/build_all.sh b/runtimes/build_all.sh new file mode 100755 index 00000000..07c81ec6 --- /dev/null +++ b/runtimes/build_all.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +input_file="runtimes.txt" + +while IFS= read -r line; do + read -r runtime version <<<"$(echo "$line" | awk '{print $2, $4}')" + + for something in some_list; do + docker build --build-arg RUNTIME="$runtime" --build-arg VERSION="$version" --build-arg ARCH=x86_64 -f Dockerfile-"$runtime" -t mlupin/docker-lambda:"${runtime}"."${version}" . + exit_status=$? + + if [ $exit_status -ne 0 ]; then + echo "Docker build failed with exit status $exit_status" + exit $exit_status + fi + done +done <"$input_file" diff --git a/runtimes/create-ghcr-images.sh b/runtimes/create-ghcr-images.sh deleted file mode 100755 index 34e757ab..00000000 --- a/runtimes/create-ghcr-images.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail -export DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")") - -for runtime in $($DIR/get-all-runtimes.sh); do - image="mlupin/docker-lambda:${runtime}" - ghcr_image="ghcr.io/mlupine/docker-lambda:${runtime}" - - for arch in x86_64 arm64; do - docker tag ${image}-${arch} ${ghcr_image}-${arch} - docker tag ${image}-build-${arch} ${ghcr_image}-build-${arch} - docker push ${ghcr_image}-${arch} - docker push ${ghcr_image}-build-${arch} - done - - docker manifest rm $ghcr_image || true - docker manifest create --insecure $ghcr_image \ - --amend ${ghcr_image}-x86_64 \ - --amend ${ghcr_image}-arm64 - - docker manifest rm ${ghcr_image}-build || true - docker manifest create --insecure ${ghcr_image}-build \ - --amend ${ghcr_image}-build-x86_64 \ - --amend ${ghcr_image}-build-arm64 - - docker manifest push --insecure ${ghcr_image} - docker manifest push --insecure ${ghcr_image}-build -done diff --git a/runtimes/dotnet6-arm64/build/Dockerfile b/runtimes/dotnet6-arm64/build/Dockerfile deleted file mode 100644 index 6b875b5e..00000000 --- a/runtimes/dotnet6-arm64/build/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM mlupin/docker-lambda:dotnet6-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -# Run: docker run --rm --entrypoint dotnet mlupin/docker-lambda:dotnet6 --info -# Check https://dotnet.microsoft.com/download/dotnet-core/6.0 for versions -ENV DOTNET_ROOT=/var/lang/bin -ENV PATH=/root/.dotnet/tools:$DOTNET_ROOT:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_dotnet6 \ - AWS_EXECUTION_ARCH=arm64 \ - DOTNET_SDK_VERSION=6.0.201 \ - DOTNET_CLI_TELEMETRY_OPTOUT=1 \ - NUGET_XMLDOC_MODE=skip - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN curl -L https://dot.net/v1/dotnet-install.sh | bash -s -- -v $DOTNET_SDK_VERSION -i $DOTNET_ROOT && \ - mkdir /tmp/warmup && \ - cd /tmp/warmup && \ - dotnet new && \ - cd / && \ - rm -rf /tmp/warmup /tmp/NuGetScratch /tmp/.dotnet - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 && \ - dotnet tool install --global Amazon.Lambda.Tools --version 5.3.0 - -CMD ["dotnet", "build"] diff --git a/runtimes/dotnet6-arm64/build/build.sh b/runtimes/dotnet6-arm64/build/build.sh deleted file mode 100644 index b93ac8e6..00000000 --- a/runtimes/dotnet6-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:dotnet6-build-arm64 . diff --git a/runtimes/dotnet6-arm64/build/publish.sh b/runtimes/dotnet6-arm64/build/publish.sh deleted file mode 100644 index 63ed20da..00000000 --- a/runtimes/dotnet6-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:dotnet6-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/dotnet6-arm64/run/Dockerfile b/runtimes/dotnet6-arm64/run/Dockerfile deleted file mode 100644 index 58972b4e..00000000 --- a/runtimes/dotnet6-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/dotnet6-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_dotnet6\ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/dotnet6-arm64/run/build.sh b/runtimes/dotnet6-arm64/run/build.sh deleted file mode 100644 index 26c289ca..00000000 --- a/runtimes/dotnet6-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:dotnet6-arm64 . diff --git a/runtimes/dotnet6-arm64/run/publish.sh b/runtimes/dotnet6-arm64/run/publish.sh deleted file mode 100644 index 303e8bec..00000000 --- a/runtimes/dotnet6-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:dotnet6" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/dotnet6-x86_64/build/Dockerfile b/runtimes/dotnet6-x86_64/build/Dockerfile deleted file mode 100644 index cb186147..00000000 --- a/runtimes/dotnet6-x86_64/build/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM mlupin/docker-lambda:dotnet6-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -# Run: docker run --rm --entrypoint dotnet mlupin/docker-lambda:dotnet6 --info -# Check https://dotnet.microsoft.com/download/dotnet-core/6.0 for versions -ENV DOTNET_ROOT=/var/lang/bin -ENV PATH=/root/.dotnet/tools:$DOTNET_ROOT:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_dotnet6 \ - AWS_EXECUTION_ARCH=x86_64 \ - DOTNET_SDK_VERSION=6.0.201 \ - DOTNET_CLI_TELEMETRY_OPTOUT=1 \ - NUGET_XMLDOC_MODE=skip - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN curl -L https://dot.net/v1/dotnet-install.sh | bash -s -- -v $DOTNET_SDK_VERSION -i $DOTNET_ROOT && \ - mkdir /tmp/warmup && \ - cd /tmp/warmup && \ - dotnet new && \ - cd / && \ - rm -rf /tmp/warmup /tmp/NuGetScratch /tmp/.dotnet - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 && \ - dotnet tool install --global Amazon.Lambda.Tools --version 5.3.0 - -CMD ["dotnet", "build"] diff --git a/runtimes/dotnet6-x86_64/build/build.sh b/runtimes/dotnet6-x86_64/build/build.sh deleted file mode 100644 index b1b5596c..00000000 --- a/runtimes/dotnet6-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:dotnet6-build-x86_64 . diff --git a/runtimes/dotnet6-x86_64/build/publish.sh b/runtimes/dotnet6-x86_64/build/publish.sh deleted file mode 100644 index 35f36d0c..00000000 --- a/runtimes/dotnet6-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:dotnet6-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/dotnet6-x86_64/run/Dockerfile b/runtimes/dotnet6-x86_64/run/Dockerfile deleted file mode 100644 index 4b95fc8a..00000000 --- a/runtimes/dotnet6-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/dotnet6-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_dotnet6\ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/dotnet6-x86_64/run/build.sh b/runtimes/dotnet6-x86_64/run/build.sh deleted file mode 100644 index c75f7899..00000000 --- a/runtimes/dotnet6-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:dotnet6-x86_64 . diff --git a/runtimes/dotnet6-x86_64/run/publish.sh b/runtimes/dotnet6-x86_64/run/publish.sh deleted file mode 100644 index 06f0fb5c..00000000 --- a/runtimes/dotnet6-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:dotnet6" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/dotnetcore3.1-arm64/build/Dockerfile b/runtimes/dotnetcore3.1-arm64/build/Dockerfile deleted file mode 100644 index ef200c0a..00000000 --- a/runtimes/dotnetcore3.1-arm64/build/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM mlupin/docker-lambda:dotnetcore3.1-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -# Run: docker run --rm --entrypoint dotnet mlupin/docker-lambda:dotnetcore3.1 --info -# Check https://dotnet.microsoft.com/download/dotnet-core/3.1 for versions -ENV DOTNET_ROOT=/var/lang/bin -ENV PATH=/root/.dotnet/tools:$DOTNET_ROOT:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_dotnetcore3.1 \ - AWS_EXECUTION_ARCH=arm64 \ - DOTNET_SDK_VERSION=3.1.405 \ - DOTNET_CLI_TELEMETRY_OPTOUT=1 \ - NUGET_XMLDOC_MODE=skip - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN curl -L https://dot.net/v1/dotnet-install.sh | bash -s -- -v $DOTNET_SDK_VERSION -i $DOTNET_ROOT && \ - mkdir /tmp/warmup && \ - cd /tmp/warmup && \ - dotnet new && \ - cd / && \ - rm -rf /tmp/warmup /tmp/NuGetScratch /tmp/.dotnet - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 && \ - dotnet tool install --global Amazon.Lambda.Tools --version 4.0.0 - -CMD ["dotnet", "build"] diff --git a/runtimes/dotnetcore3.1-arm64/build/build.sh b/runtimes/dotnetcore3.1-arm64/build/build.sh deleted file mode 100755 index 750a520f..00000000 --- a/runtimes/dotnetcore3.1-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:dotnetcore3.1-build-arm64 . diff --git a/runtimes/dotnetcore3.1-arm64/build/publish.sh b/runtimes/dotnetcore3.1-arm64/build/publish.sh deleted file mode 100755 index af7b8ff6..00000000 --- a/runtimes/dotnetcore3.1-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:dotnetcore3.1-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/dotnetcore3.1-arm64/run/Dockerfile b/runtimes/dotnetcore3.1-arm64/run/Dockerfile deleted file mode 100644 index 40289d34..00000000 --- a/runtimes/dotnetcore3.1-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/dotnetcore3.1-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_dotnetcore3.1\ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/dotnetcore3.1-arm64/run/build.sh b/runtimes/dotnetcore3.1-arm64/run/build.sh deleted file mode 100755 index 5693da5f..00000000 --- a/runtimes/dotnetcore3.1-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:dotnetcore3.1-arm64 . diff --git a/runtimes/dotnetcore3.1-arm64/run/publish.sh b/runtimes/dotnetcore3.1-arm64/run/publish.sh deleted file mode 100755 index 217d065d..00000000 --- a/runtimes/dotnetcore3.1-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:dotnetcore3.1" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/dotnetcore3.1-x86_64/build/Dockerfile b/runtimes/dotnetcore3.1-x86_64/build/Dockerfile deleted file mode 100644 index f821db02..00000000 --- a/runtimes/dotnetcore3.1-x86_64/build/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM mlupin/docker-lambda:dotnetcore3.1-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -# Run: docker run --rm --entrypoint dotnet mlupin/docker-lambda:dotnetcore3.1 --info -# Check https://dotnet.microsoft.com/download/dotnet-core/3.1 for versions -ENV DOTNET_ROOT=/var/lang/bin -ENV PATH=/root/.dotnet/tools:$DOTNET_ROOT:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_dotnetcore3.1 \ - AWS_EXECUTION_ARCH=x86_64 \ - DOTNET_SDK_VERSION=3.1.405 \ - DOTNET_CLI_TELEMETRY_OPTOUT=1 \ - NUGET_XMLDOC_MODE=skip - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN curl -L https://dot.net/v1/dotnet-install.sh | bash -s -- -v $DOTNET_SDK_VERSION -i $DOTNET_ROOT && \ - mkdir /tmp/warmup && \ - cd /tmp/warmup && \ - dotnet new && \ - cd / && \ - rm -rf /tmp/warmup /tmp/NuGetScratch /tmp/.dotnet - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 && \ - dotnet tool install --global Amazon.Lambda.Tools --version 4.0.0 - -CMD ["dotnet", "build"] diff --git a/runtimes/dotnetcore3.1-x86_64/build/build.sh b/runtimes/dotnetcore3.1-x86_64/build/build.sh deleted file mode 100755 index 1c396252..00000000 --- a/runtimes/dotnetcore3.1-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:dotnetcore3.1-build-x86_64 . diff --git a/runtimes/dotnetcore3.1-x86_64/build/publish.sh b/runtimes/dotnetcore3.1-x86_64/build/publish.sh deleted file mode 100755 index 718b28bb..00000000 --- a/runtimes/dotnetcore3.1-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:dotnetcore3.1-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/dotnetcore3.1-x86_64/run/Dockerfile b/runtimes/dotnetcore3.1-x86_64/run/Dockerfile deleted file mode 100644 index 93fb2326..00000000 --- a/runtimes/dotnetcore3.1-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/dotnetcore3.1-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_dotnetcore3.1\ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/dotnetcore3.1-x86_64/run/build.sh b/runtimes/dotnetcore3.1-x86_64/run/build.sh deleted file mode 100755 index 14942402..00000000 --- a/runtimes/dotnetcore3.1-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:dotnetcore3.1-x86_64 . diff --git a/runtimes/dotnetcore3.1-x86_64/run/publish.sh b/runtimes/dotnetcore3.1-x86_64/run/publish.sh deleted file mode 100755 index 6e347de5..00000000 --- a/runtimes/dotnetcore3.1-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:dotnetcore3.1" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/get-all-runtimes.sh b/runtimes/get-all-runtimes.sh deleted file mode 100755 index 6c918abe..00000000 --- a/runtimes/get-all-runtimes.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail -export DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")") - -find $DIR -mindepth 1 -maxdepth 1 -type d | rev | cut -d'/' -f1 | cut -d'-' -f2- | rev | sort -u diff --git a/runtimes/get_all_runtimes.sh b/runtimes/get_all_runtimes.sh new file mode 100755 index 00000000..322cc02f --- /dev/null +++ b/runtimes/get_all_runtimes.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -euo pipefail +wget -q https://github.com/ericchiang/pup/releases/download/v0.4.0/pup_v0.4.0_linux_amd64.zip +unzip pup_v0.4.0_linux_amd64.zip +curl -s https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html \ + | ./pup '.table-container' | ./pup ':parent-of(:parent-of(:parent-of(:parent-of(:contains("Supported")))))' \ + | ./pup 'tbody code text{}' | sed '/^[[:space:]]*$/d' | tr -d ' ' | awk '{ + if ($0 ~ /provided/) { + next + } + # Find the position where the first digit occurs + match($0, /[0-9]/) + start = RSTART + + # Extract the runtime and version + RUNTIME = substr($0, 1, start - 1) + VERSION = substr($0, start) + + # Remove unwanted endings + gsub(/\.(x|al[0-9]*)$/, "", VERSION) + + print "Runtime: " RUNTIME " Version: " VERSION +}' > runtimes.txt +rm -rf pup* \ No newline at end of file diff --git a/runtimes/java11-arm64/build/Dockerfile b/runtimes/java11-arm64/build/Dockerfile deleted file mode 100644 index 48d9cd6a..00000000 --- a/runtimes/java11-arm64/build/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM mlupin/docker-lambda:java11-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_java11 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN mkdir /usr/local/gradle && curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-6.8.1-bin.zip && \ - unzip -qd /usr/local/gradle gradle.zip && rm gradle.zip && mkdir /usr/local/maven && \ - curl -L https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz | \ - tar -zx -C /usr/local/maven - -ENV PATH="/usr/local/gradle/gradle-6.8.1/bin:/usr/local/maven/apache-maven-3.6.3/bin:${PATH}" - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/java11-arm64/build/build.sh b/runtimes/java11-arm64/build/build.sh deleted file mode 100755 index 76455f7a..00000000 --- a/runtimes/java11-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java11-build-arm64 . diff --git a/runtimes/java11-arm64/build/publish.sh b/runtimes/java11-arm64/build/publish.sh deleted file mode 100755 index 7d025383..00000000 --- a/runtimes/java11-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java11-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java11-arm64/run/Dockerfile b/runtimes/java11-arm64/run/Dockerfile deleted file mode 100644 index 339e8975..00000000 --- a/runtimes/java11-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/java11-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_java11 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/java11-arm64/run/build.sh b/runtimes/java11-arm64/run/build.sh deleted file mode 100755 index 40bb05c0..00000000 --- a/runtimes/java11-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java11-arm64 . diff --git a/runtimes/java11-arm64/run/publish.sh b/runtimes/java11-arm64/run/publish.sh deleted file mode 100755 index 9d7ff8e1..00000000 --- a/runtimes/java11-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java11" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java11-x86_64/build/Dockerfile b/runtimes/java11-x86_64/build/Dockerfile deleted file mode 100644 index 7c5235dc..00000000 --- a/runtimes/java11-x86_64/build/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM mlupin/docker-lambda:java11-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_java11 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN mkdir /usr/local/gradle && curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-6.8.1-bin.zip && \ - unzip -qd /usr/local/gradle gradle.zip && rm gradle.zip && mkdir /usr/local/maven && \ - curl -L https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz | \ - tar -zx -C /usr/local/maven - -ENV PATH="/usr/local/gradle/gradle-6.8.1/bin:/usr/local/maven/apache-maven-3.6.3/bin:${PATH}" - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/java11-x86_64/build/build.sh b/runtimes/java11-x86_64/build/build.sh deleted file mode 100755 index dcc51999..00000000 --- a/runtimes/java11-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java11-build-x86_64 . diff --git a/runtimes/java11-x86_64/build/publish.sh b/runtimes/java11-x86_64/build/publish.sh deleted file mode 100755 index baf8bb32..00000000 --- a/runtimes/java11-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java11-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java11-x86_64/run/Dockerfile b/runtimes/java11-x86_64/run/Dockerfile deleted file mode 100644 index 00d4be37..00000000 --- a/runtimes/java11-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/java11-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_java11 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/java11-x86_64/run/build.sh b/runtimes/java11-x86_64/run/build.sh deleted file mode 100755 index 62e1d197..00000000 --- a/runtimes/java11-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java11-x86_64 . diff --git a/runtimes/java11-x86_64/run/publish.sh b/runtimes/java11-x86_64/run/publish.sh deleted file mode 100755 index 24e4f0ae..00000000 --- a/runtimes/java11-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java11" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java17-arm64/build/Dockerfile b/runtimes/java17-arm64/build/Dockerfile deleted file mode 100644 index adb90afb..00000000 --- a/runtimes/java17-arm64/build/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM mlupin/docker-lambda:java17-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_java17 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN mkdir /usr/local/gradle && curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-8.2.1-bin.zip && \ - unzip -qd /usr/local/gradle gradle.zip && rm gradle.zip && mkdir /usr/local/maven && \ - curl -L https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz | \ - tar -zx -C /usr/local/maven - -ENV PATH="/usr/local/gradle/gradle-8.2.1/bin:/usr/local/maven/apache-maven-3.9.3/bin:${PATH}" - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/java17-arm64/build/build.sh b/runtimes/java17-arm64/build/build.sh deleted file mode 100755 index 88f07dd8..00000000 --- a/runtimes/java17-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java17-build-arm64 . diff --git a/runtimes/java17-arm64/build/publish.sh b/runtimes/java17-arm64/build/publish.sh deleted file mode 100755 index 06290afc..00000000 --- a/runtimes/java17-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java17-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java17-arm64/run/Dockerfile b/runtimes/java17-arm64/run/Dockerfile deleted file mode 100644 index 7b780975..00000000 --- a/runtimes/java17-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/java17-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_java17 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/java17-arm64/run/build.sh b/runtimes/java17-arm64/run/build.sh deleted file mode 100755 index 49114ebb..00000000 --- a/runtimes/java17-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java17-arm64 . diff --git a/runtimes/java17-arm64/run/publish.sh b/runtimes/java17-arm64/run/publish.sh deleted file mode 100755 index 6b9b1fb4..00000000 --- a/runtimes/java17-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java17" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java17-x86_64/build/Dockerfile b/runtimes/java17-x86_64/build/Dockerfile deleted file mode 100644 index da039ce0..00000000 --- a/runtimes/java17-x86_64/build/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM mlupin/docker-lambda:java17-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_java17 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN mkdir /usr/local/gradle && curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-8.2.1-bin.zip && \ - unzip -qd /usr/local/gradle gradle.zip && rm gradle.zip && mkdir /usr/local/maven && \ - curl -L https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz | \ - tar -zx -C /usr/local/maven - -ENV PATH="/usr/local/gradle/gradle-8.2.1/bin:/usr/local/maven/apache-maven-3.9.3/bin:${PATH}" - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/java17-x86_64/build/build.sh b/runtimes/java17-x86_64/build/build.sh deleted file mode 100755 index bfc15ab0..00000000 --- a/runtimes/java17-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java17-build-x86_64 . diff --git a/runtimes/java17-x86_64/build/publish.sh b/runtimes/java17-x86_64/build/publish.sh deleted file mode 100755 index 3c6df362..00000000 --- a/runtimes/java17-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java17-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java17-x86_64/run/Dockerfile b/runtimes/java17-x86_64/run/Dockerfile deleted file mode 100644 index 7c2e0977..00000000 --- a/runtimes/java17-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/java17-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_java17 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/java17-x86_64/run/build.sh b/runtimes/java17-x86_64/run/build.sh deleted file mode 100755 index 1fac7b36..00000000 --- a/runtimes/java17-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java17-x86_64 . diff --git a/runtimes/java17-x86_64/run/publish.sh b/runtimes/java17-x86_64/run/publish.sh deleted file mode 100755 index a5447447..00000000 --- a/runtimes/java17-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java17" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java8.al2-arm64/build/Dockerfile b/runtimes/java8.al2-arm64/build/Dockerfile deleted file mode 100644 index 5dd4c85a..00000000 --- a/runtimes/java8.al2-arm64/build/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM mlupin/docker-lambda:java8.al2-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_rapid \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN rm -rf /var/lang/* && \ - curl -sSL https://corretto.aws/downloads/resources/8.265.01.1/amazon-corretto-8.265.01.1-linux-aarch64.tar.gz | tar -xz --strip-components=1 -C /var/lang && \ - rm -rf /var/lang/*.zip && \ - mkdir /usr/local/gradle && curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-6.8.1-bin.zip && \ - unzip -qd /usr/local/gradle gradle.zip && rm gradle.zip && mkdir /usr/local/maven && \ - curl -L https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz | \ - tar -zx -C /usr/local/maven - -ENV PATH="/usr/local/gradle/gradle-6.8.1/bin:/usr/local/maven/apache-maven-3.6.3/bin:${PATH}" - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/java8.al2-arm64/build/build.sh b/runtimes/java8.al2-arm64/build/build.sh deleted file mode 100755 index cc02272e..00000000 --- a/runtimes/java8.al2-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java8.al2-build-arm64 . diff --git a/runtimes/java8.al2-arm64/build/publish.sh b/runtimes/java8.al2-arm64/build/publish.sh deleted file mode 100755 index d4aa7e3f..00000000 --- a/runtimes/java8.al2-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java8.al2-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java8.al2-arm64/run/Dockerfile b/runtimes/java8.al2-arm64/run/Dockerfile deleted file mode 100644 index b2c97d76..00000000 --- a/runtimes/java8.al2-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/java8.al2-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_rapid \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/java8.al2-arm64/run/build.sh b/runtimes/java8.al2-arm64/run/build.sh deleted file mode 100755 index eb9ca013..00000000 --- a/runtimes/java8.al2-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java8.al2-arm64 . diff --git a/runtimes/java8.al2-arm64/run/publish.sh b/runtimes/java8.al2-arm64/run/publish.sh deleted file mode 100755 index 0ba48ec8..00000000 --- a/runtimes/java8.al2-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java8.al2" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java8.al2-x86_64/build/Dockerfile b/runtimes/java8.al2-x86_64/build/Dockerfile deleted file mode 100644 index 33d9a6a5..00000000 --- a/runtimes/java8.al2-x86_64/build/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM mlupin/docker-lambda:java8.al2-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_rapid \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -RUN rm -rf /var/lang/* && \ - curl -sSL https://corretto.aws/downloads/resources/8.265.01.1/amazon-corretto-8.265.01.1-linux-x64.tar.gz | tar -xz --strip-components=1 -C /var/lang && \ - rm -rf /var/lang/*.zip && \ - mkdir /usr/local/gradle && curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-6.8.1-bin.zip && \ - unzip -qd /usr/local/gradle gradle.zip && rm gradle.zip && mkdir /usr/local/maven && \ - curl -L https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz | \ - tar -zx -C /usr/local/maven - -ENV PATH="/usr/local/gradle/gradle-6.8.1/bin:/usr/local/maven/apache-maven-3.6.3/bin:${PATH}" - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/java8.al2-x86_64/build/build.sh b/runtimes/java8.al2-x86_64/build/build.sh deleted file mode 100755 index c13bfb9d..00000000 --- a/runtimes/java8.al2-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java8.al2-build-x86_64 . diff --git a/runtimes/java8.al2-x86_64/build/publish.sh b/runtimes/java8.al2-x86_64/build/publish.sh deleted file mode 100755 index bac7667a..00000000 --- a/runtimes/java8.al2-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java8.al2-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/java8.al2-x86_64/run/Dockerfile b/runtimes/java8.al2-x86_64/run/Dockerfile deleted file mode 100644 index ef3ae54e..00000000 --- a/runtimes/java8.al2-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/java8.al2-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_rapid \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/java8.al2-x86_64/run/build.sh b/runtimes/java8.al2-x86_64/run/build.sh deleted file mode 100755 index 12677713..00000000 --- a/runtimes/java8.al2-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:java8.al2-x86_64 . diff --git a/runtimes/java8.al2-x86_64/run/publish.sh b/runtimes/java8.al2-x86_64/run/publish.sh deleted file mode 100755 index 7e4edf9e..00000000 --- a/runtimes/java8.al2-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:java8.al2" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/manifest-all-images.sh b/runtimes/manifest-all-images.sh deleted file mode 100755 index 776fd91b..00000000 --- a/runtimes/manifest-all-images.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail -export DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")") - -for runtime in $($DIR/get-all-runtimes.sh); do - image="mlupin/docker-lambda:${runtime}" - - docker manifest rm $image || true - docker manifest create $image \ - --amend ${image}-x86_64 \ - --amend ${image}-arm64 - - docker manifest rm ${image}-build || true - docker manifest create ${image}-build \ - --amend ${image}-build-x86_64 \ - --amend ${image}-build-arm64 - - docker manifest push ${image} - docker manifest push ${image}-build -done diff --git a/runtimes/nodejs12.x-arm64/build/Dockerfile b/runtimes/nodejs12.x-arm64/build/Dockerfile deleted file mode 100644 index f5846f6d..00000000 --- a/runtimes/nodejs12.x-arm64/build/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mlupin/docker-lambda:nodejs12.x-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs12.x \ - AWS_EXECUTION_ARCH=arm64 \ - NODE_PATH=/opt/nodejs/node12/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/nodejs12.x-arm64/build/build.sh b/runtimes/nodejs12.x-arm64/build/build.sh deleted file mode 100755 index 118247be..00000000 --- a/runtimes/nodejs12.x-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs12.x-build-arm64 . diff --git a/runtimes/nodejs12.x-arm64/build/publish.sh b/runtimes/nodejs12.x-arm64/build/publish.sh deleted file mode 100755 index 80d06c56..00000000 --- a/runtimes/nodejs12.x-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs12.x-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs12.x-arm64/run/Dockerfile b/runtimes/nodejs12.x-arm64/run/Dockerfile deleted file mode 100644 index 7c980f07..00000000 --- a/runtimes/nodejs12.x-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/nodejs12.x-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs12.x \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/nodejs12.x-arm64/run/build.sh b/runtimes/nodejs12.x-arm64/run/build.sh deleted file mode 100755 index 44af4f32..00000000 --- a/runtimes/nodejs12.x-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs12.x-arm64 . diff --git a/runtimes/nodejs12.x-arm64/run/publish.sh b/runtimes/nodejs12.x-arm64/run/publish.sh deleted file mode 100755 index 7a5b0bf8..00000000 --- a/runtimes/nodejs12.x-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs12.x" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs12.x-x86_64/build/Dockerfile b/runtimes/nodejs12.x-x86_64/build/Dockerfile deleted file mode 100644 index 86f25450..00000000 --- a/runtimes/nodejs12.x-x86_64/build/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mlupin/docker-lambda:nodejs12.x-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs12.x \ - AWS_EXECUTION_ARCH=x86_64 \ - NODE_PATH=/opt/nodejs/node12/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/nodejs12.x-x86_64/build/build.sh b/runtimes/nodejs12.x-x86_64/build/build.sh deleted file mode 100755 index d99282bc..00000000 --- a/runtimes/nodejs12.x-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs12.x-build-x86_64 . diff --git a/runtimes/nodejs12.x-x86_64/build/publish.sh b/runtimes/nodejs12.x-x86_64/build/publish.sh deleted file mode 100755 index 0c50f188..00000000 --- a/runtimes/nodejs12.x-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs12.x-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs12.x-x86_64/run/Dockerfile b/runtimes/nodejs12.x-x86_64/run/Dockerfile deleted file mode 100644 index d9fc5604..00000000 --- a/runtimes/nodejs12.x-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/nodejs12.x-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs12.x \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/nodejs12.x-x86_64/run/build.sh b/runtimes/nodejs12.x-x86_64/run/build.sh deleted file mode 100755 index ddc79ba2..00000000 --- a/runtimes/nodejs12.x-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs12.x-x86_64 . diff --git a/runtimes/nodejs12.x-x86_64/run/publish.sh b/runtimes/nodejs12.x-x86_64/run/publish.sh deleted file mode 100755 index 5d6af356..00000000 --- a/runtimes/nodejs12.x-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs12.x" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs14.x-arm64/build/Dockerfile b/runtimes/nodejs14.x-arm64/build/Dockerfile deleted file mode 100644 index bdaab197..00000000 --- a/runtimes/nodejs14.x-arm64/build/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mlupin/docker-lambda:nodejs14.x-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs14.x \ - AWS_EXECUTION_ARCH=arm64 \ - NODE_PATH=/opt/nodejs/node14/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/nodejs14.x-arm64/build/build.sh b/runtimes/nodejs14.x-arm64/build/build.sh deleted file mode 100755 index a0e8d5e8..00000000 --- a/runtimes/nodejs14.x-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs14.x-build-arm64 . diff --git a/runtimes/nodejs14.x-arm64/build/publish.sh b/runtimes/nodejs14.x-arm64/build/publish.sh deleted file mode 100755 index b1f0d696..00000000 --- a/runtimes/nodejs14.x-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs14.x-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs14.x-arm64/run/Dockerfile b/runtimes/nodejs14.x-arm64/run/Dockerfile deleted file mode 100644 index b4ff0653..00000000 --- a/runtimes/nodejs14.x-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/nodejs14.x-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs14.x \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/nodejs14.x-arm64/run/build.sh b/runtimes/nodejs14.x-arm64/run/build.sh deleted file mode 100755 index f825145f..00000000 --- a/runtimes/nodejs14.x-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs14.x-arm64 . diff --git a/runtimes/nodejs14.x-arm64/run/publish.sh b/runtimes/nodejs14.x-arm64/run/publish.sh deleted file mode 100755 index 7b186932..00000000 --- a/runtimes/nodejs14.x-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs14.x" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs14.x-x86_64/build/Dockerfile b/runtimes/nodejs14.x-x86_64/build/Dockerfile deleted file mode 100644 index 9765a22a..00000000 --- a/runtimes/nodejs14.x-x86_64/build/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mlupin/docker-lambda:nodejs14.x-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs14.x \ - AWS_EXECUTION_ARCH=x86_64 \ - NODE_PATH=/opt/nodejs/node14/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/nodejs14.x-x86_64/build/build.sh b/runtimes/nodejs14.x-x86_64/build/build.sh deleted file mode 100755 index 1026e03b..00000000 --- a/runtimes/nodejs14.x-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs14.x-build-x86_64 . diff --git a/runtimes/nodejs14.x-x86_64/build/publish.sh b/runtimes/nodejs14.x-x86_64/build/publish.sh deleted file mode 100755 index 76a6f6bf..00000000 --- a/runtimes/nodejs14.x-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs14.x-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs14.x-x86_64/run/Dockerfile b/runtimes/nodejs14.x-x86_64/run/Dockerfile deleted file mode 100644 index 75ab2af5..00000000 --- a/runtimes/nodejs14.x-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/nodejs14.x-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs14.x \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/nodejs14.x-x86_64/run/build.sh b/runtimes/nodejs14.x-x86_64/run/build.sh deleted file mode 100755 index ce549c9c..00000000 --- a/runtimes/nodejs14.x-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs14.x-x86_64 . diff --git a/runtimes/nodejs14.x-x86_64/run/publish.sh b/runtimes/nodejs14.x-x86_64/run/publish.sh deleted file mode 100755 index cbcd9c57..00000000 --- a/runtimes/nodejs14.x-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs14.x" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs16.x-arm64/build/Dockerfile b/runtimes/nodejs16.x-arm64/build/Dockerfile deleted file mode 100644 index 19874b2a..00000000 --- a/runtimes/nodejs16.x-arm64/build/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mlupin/docker-lambda:nodejs16.x-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs16.x \ - AWS_EXECUTION_ARCH=arm64 \ - NODE_PATH=/opt/nodejs/node16/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/nodejs16.x-arm64/build/build.sh b/runtimes/nodejs16.x-arm64/build/build.sh deleted file mode 100755 index 77525f3f..00000000 --- a/runtimes/nodejs16.x-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs16.x-build-arm64 . diff --git a/runtimes/nodejs16.x-arm64/build/publish.sh b/runtimes/nodejs16.x-arm64/build/publish.sh deleted file mode 100755 index 569d321d..00000000 --- a/runtimes/nodejs16.x-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs16.x-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs16.x-arm64/run/Dockerfile b/runtimes/nodejs16.x-arm64/run/Dockerfile deleted file mode 100644 index f006eb15..00000000 --- a/runtimes/nodejs16.x-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/nodejs16.x-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs16.x \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/nodejs16.x-arm64/run/build.sh b/runtimes/nodejs16.x-arm64/run/build.sh deleted file mode 100755 index bff5fa9c..00000000 --- a/runtimes/nodejs16.x-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs16.x-arm64 . diff --git a/runtimes/nodejs16.x-arm64/run/publish.sh b/runtimes/nodejs16.x-arm64/run/publish.sh deleted file mode 100755 index 07d36203..00000000 --- a/runtimes/nodejs16.x-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs16.x" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs16.x-x86_64/build/Dockerfile b/runtimes/nodejs16.x-x86_64/build/Dockerfile deleted file mode 100644 index 6b6786fa..00000000 --- a/runtimes/nodejs16.x-x86_64/build/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mlupin/docker-lambda:nodejs16.x-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs16.x \ - AWS_EXECUTION_ARCH=x86_64 \ - NODE_PATH=/opt/nodejs/node16/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/nodejs16.x-x86_64/build/build.sh b/runtimes/nodejs16.x-x86_64/build/build.sh deleted file mode 100755 index 2de1cf14..00000000 --- a/runtimes/nodejs16.x-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs16.x-build-x86_64 . diff --git a/runtimes/nodejs16.x-x86_64/build/publish.sh b/runtimes/nodejs16.x-x86_64/build/publish.sh deleted file mode 100755 index b83c5b2d..00000000 --- a/runtimes/nodejs16.x-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs16.x-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs16.x-x86_64/run/Dockerfile b/runtimes/nodejs16.x-x86_64/run/Dockerfile deleted file mode 100644 index 729c5fd2..00000000 --- a/runtimes/nodejs16.x-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/nodejs16.x-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs16.x \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/nodejs16.x-x86_64/run/build.sh b/runtimes/nodejs16.x-x86_64/run/build.sh deleted file mode 100755 index 6268d763..00000000 --- a/runtimes/nodejs16.x-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs16.x-x86_64 . diff --git a/runtimes/nodejs16.x-x86_64/run/publish.sh b/runtimes/nodejs16.x-x86_64/run/publish.sh deleted file mode 100755 index 4d63892d..00000000 --- a/runtimes/nodejs16.x-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs16.x" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs18.x-arm64/build/Dockerfile b/runtimes/nodejs18.x-arm64/build/Dockerfile deleted file mode 100644 index c3a90f18..00000000 --- a/runtimes/nodejs18.x-arm64/build/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mlupin/docker-lambda:nodejs18.x-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs18.x \ - AWS_EXECUTION_ARCH=arm64 \ - NODE_PATH=/opt/nodejs/node18/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.23.1 && \ - pipx install aws-sam-cli==1.66.0 diff --git a/runtimes/nodejs18.x-arm64/build/build.sh b/runtimes/nodejs18.x-arm64/build/build.sh deleted file mode 100755 index 516dfe40..00000000 --- a/runtimes/nodejs18.x-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs18.x-build-arm64 . diff --git a/runtimes/nodejs18.x-arm64/build/publish.sh b/runtimes/nodejs18.x-arm64/build/publish.sh deleted file mode 100755 index 0336262d..00000000 --- a/runtimes/nodejs18.x-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs18.x-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs18.x-arm64/run/Dockerfile b/runtimes/nodejs18.x-arm64/run/Dockerfile deleted file mode 100644 index 035be1ba..00000000 --- a/runtimes/nodejs18.x-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/nodejs18.x-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs18.x \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/nodejs18.x-arm64/run/build.sh b/runtimes/nodejs18.x-arm64/run/build.sh deleted file mode 100755 index d17090d4..00000000 --- a/runtimes/nodejs18.x-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs18.x-arm64 . diff --git a/runtimes/nodejs18.x-arm64/run/publish.sh b/runtimes/nodejs18.x-arm64/run/publish.sh deleted file mode 100755 index e6237c74..00000000 --- a/runtimes/nodejs18.x-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs18.x" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs18.x-x86_64/build/Dockerfile b/runtimes/nodejs18.x-x86_64/build/Dockerfile deleted file mode 100644 index 2c0fa083..00000000 --- a/runtimes/nodejs18.x-x86_64/build/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mlupin/docker-lambda:nodejs18.x-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs18.x \ - AWS_EXECUTION_ARCH=x86_64 \ - NODE_PATH=/opt/nodejs/node18/node_modules:/opt/nodejs/node_modules:/var/runtime/node_modules - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.23.1 && \ - pipx install aws-sam-cli==1.66.0 diff --git a/runtimes/nodejs18.x-x86_64/build/build.sh b/runtimes/nodejs18.x-x86_64/build/build.sh deleted file mode 100755 index ccfd973b..00000000 --- a/runtimes/nodejs18.x-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs18.x-build-x86_64 . diff --git a/runtimes/nodejs18.x-x86_64/build/publish.sh b/runtimes/nodejs18.x-x86_64/build/publish.sh deleted file mode 100755 index 75dcb165..00000000 --- a/runtimes/nodejs18.x-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs18.x-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/nodejs18.x-x86_64/run/Dockerfile b/runtimes/nodejs18.x-x86_64/run/Dockerfile deleted file mode 100644 index b9a2fe1f..00000000 --- a/runtimes/nodejs18.x-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/nodejs18.x-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_nodejs18.x \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/nodejs18.x-x86_64/run/build.sh b/runtimes/nodejs18.x-x86_64/run/build.sh deleted file mode 100755 index 1f3da476..00000000 --- a/runtimes/nodejs18.x-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:nodejs18.x-x86_64 . diff --git a/runtimes/nodejs18.x-x86_64/run/publish.sh b/runtimes/nodejs18.x-x86_64/run/publish.sh deleted file mode 100755 index a2f7c36f..00000000 --- a/runtimes/nodejs18.x-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:nodejs18.x" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/provided.al2-arm64/build/Dockerfile b/runtimes/provided.al2-arm64/build/Dockerfile deleted file mode 100644 index 9b4b15ec..00000000 --- a/runtimes/provided.al2-arm64/build/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM mlupin/docker-lambda:provided.al2-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/provided.al2-arm64/build/build.sh b/runtimes/provided.al2-arm64/build/build.sh deleted file mode 100755 index 86066f65..00000000 --- a/runtimes/provided.al2-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:provided.al2-build-arm64 . diff --git a/runtimes/provided.al2-arm64/build/publish.sh b/runtimes/provided.al2-arm64/build/publish.sh deleted file mode 100755 index c82bc09c..00000000 --- a/runtimes/provided.al2-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:provided.al2-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/provided.al2-arm64/run/Dockerfile b/runtimes/provided.al2-arm64/run/Dockerfile deleted file mode 100644 index 94910c01..00000000 --- a/runtimes/provided.al2-arm64/run/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM golang:1 - -WORKDIR /app - -ENV CGO_ENABLED=0 - -COPY go.mod go.sum ./ -RUN go mod download - -COPY init.go ./ -RUN GOARCH=arm64 GOOS=linux go build init.go - -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH - -COPY --from=0 /app/init /var/runtime/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/runtime/init"] diff --git a/runtimes/provided.al2-arm64/run/build.sh b/runtimes/provided.al2-arm64/run/build.sh deleted file mode 100755 index e7400b6f..00000000 --- a/runtimes/provided.al2-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --no-cache --squash -t mlupin/docker-lambda:provided.al2-arm64 . diff --git a/runtimes/provided.al2-arm64/run/go.mod b/runtimes/provided.al2-arm64/run/go.mod deleted file mode 100644 index 28c72849..00000000 --- a/runtimes/provided.al2-arm64/run/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module init - -require ( - github.com/go-chi/chi v4.0.2+incompatible - github.com/go-chi/render v1.0.1 - github.com/rjeczalik/notify v0.9.2 -) - -go 1.15 diff --git a/runtimes/provided.al2-arm64/run/go.sum b/runtimes/provided.al2-arm64/run/go.sum deleted file mode 100644 index beef513a..00000000 --- a/runtimes/provided.al2-arm64/run/go.sum +++ /dev/null @@ -1,8 +0,0 @@ -github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= -github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-chi/render v1.0.1 h1:4/5tis2cKaNdnv9zFLfXzcquC9HbeZgCnxGnKrltBS8= -github.com/go-chi/render v1.0.1/go.mod h1:pq4Rr7HbnsdaeHagklXub+p6Wd16Af5l9koip1OvJns= -github.com/rjeczalik/notify v0.9.2 h1:MiTWrPj55mNDHEiIX5YUSKefw/+lCQVoAFmD6oQm5w8= -github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= -golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7 h1:bit1t3mgdR35yN0cX0G8orgLtOuyL9Wqxa1mccLB0ig= -golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/runtimes/provided.al2-arm64/run/init.go b/runtimes/provided.al2-arm64/run/init.go deleted file mode 100644 index 62cdff6a..00000000 --- a/runtimes/provided.al2-arm64/run/init.go +++ /dev/null @@ -1,997 +0,0 @@ -package main - -import ( - "bufio" - "bytes" - "context" - "encoding/base64" - "encoding/hex" - "encoding/json" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "math" - "math/rand" - "net" - "net/http" - "os" - "os/exec" - "os/signal" - "reflect" - "regexp" - "strconv" - "sync" - "syscall" - "time" - - "github.com/go-chi/chi" - "github.com/go-chi/render" - "github.com/rjeczalik/notify" -) - -var logDebug = os.Getenv("DOCKER_LAMBDA_DEBUG") != "" -var stayOpen = os.Getenv("DOCKER_LAMBDA_STAY_OPEN") != "" -var noBootstrap = os.Getenv("DOCKER_LAMBDA_NO_BOOTSTRAP") != "" -var apiPort = getEnv("DOCKER_LAMBDA_API_PORT", "9001") -var runtimePort = getEnv("DOCKER_LAMBDA_RUNTIME_PORT", "9001") -var useStdin = os.Getenv("DOCKER_LAMBDA_USE_STDIN") != "" -var noModifyLogs = os.Getenv("DOCKER_LAMBDA_NO_MODIFY_LOGS") != "" -var watchMode = os.Getenv("DOCKER_LAMBDA_WATCH") != "" - -var curState = "STATE_INIT" - -var transitions = map[string]map[string]bool{ - "STATE_INIT_ERROR": {"STATE_INIT": true}, - "STATE_INVOKE_NEXT": {"STATE_INIT": true, "STATE_INVOKE_NEXT": true, "STATE_INVOKE_RESPONSE": true, "STATE_INVOKE_ERROR": true}, - "STATE_INVOKE_RESPONSE": {"STATE_INVOKE_NEXT": true}, - "STATE_INVOKE_ERROR": {"STATE_INVOKE_NEXT": true}, -} - -var acceptedResponse = &statusResponse{Status: "OK", HTTPStatusCode: 202} - -var curContext *mockLambdaContext -var bootstrapCmd *exec.Cmd -var initPrinted bool -var eventChan chan *mockLambdaContext -var bootstrapExitedGracefully bool -var bootstrapIsRunning bool -var bootstrapPath *string -var bootstrapArgs []string -var bootstrapMutex sync.Mutex -var logsBuf bytes.Buffer -var serverInitEnd time.Time - -func newContext() *mockLambdaContext { - context := &mockLambdaContext{ - RequestID: fakeGUID(), - FnName: getEnv("AWS_LAMBDA_FUNCTION_NAME", "test"), - Version: getEnv("AWS_LAMBDA_FUNCTION_VERSION", "$LATEST"), - MemSize: getEnv("AWS_LAMBDA_FUNCTION_MEMORY_SIZE", "1536"), - Timeout: getEnv("AWS_LAMBDA_FUNCTION_TIMEOUT", "300"), - Region: getEnv("AWS_REGION", getEnv("AWS_DEFAULT_REGION", "us-east-1")), - AccountID: getEnv("AWS_ACCOUNT_ID", strconv.FormatInt(int64(rand.Int31()), 10)), - XAmznTraceID: getEnv("_X_AMZN_TRACE_ID", ""), - ClientContext: getEnv("AWS_LAMBDA_CLIENT_CONTEXT", ""), - CognitoIdentity: getEnv("AWS_LAMBDA_COGNITO_IDENTITY", ""), - Start: time.Now(), - Done: make(chan bool), - } - context.ParseTimeout() - context.ParseFunctionArn() - return context -} - -type key int - -const ( - keyRequestID key = iota -) - -func main() { - rand.Seed(time.Now().UTC().UnixNano()) - log.SetOutput(os.Stderr) - - interrupt := make(chan os.Signal, 1) - signal.Notify(interrupt, os.Interrupt) - - render.Respond = renderJSON - - eventChan = make(chan *mockLambdaContext) - - bootstrapPath = flag.String("bootstrap", "/var/runtime/bootstrap", "path to bootstrap") - bootstrapArgsString := flag.String("bootstrap-args", "[]", "additional arguments passed to bootstrap, as a stringified JSON Array") - flag.Bool("enable-msg-logs", false, "enable message logs") - - flag.Parse() - positionalArgs := flag.Args() - - if err := json.Unmarshal([]byte(*bootstrapArgsString), &bootstrapArgs); err != nil { - log.Fatal(fmt.Errorf("Value of --bootstrap-args should be a JSON Array. Error: %s", err)) - return - } - - var handler string - if len(positionalArgs) > 0 { - handler = positionalArgs[0] - } else { - handler = getEnv("AWS_LAMBDA_FUNCTION_HANDLER", getEnv("_HANDLER", "handler")) - } - os.Setenv("_HANDLER", handler) - - var eventBody []byte - if len(positionalArgs) > 1 { - eventBody = []byte(positionalArgs[1]) - } else { - eventBody = []byte(os.Getenv("AWS_LAMBDA_EVENT_BODY")) - if len(eventBody) == 0 { - if useStdin { - eventBody, _ = ioutil.ReadAll(os.Stdin) - } else { - eventBody = []byte("{}") - } - } - } - - curContext = newContext() - - os.Setenv("AWS_LAMBDA_FUNCTION_NAME", curContext.FnName) - os.Setenv("AWS_LAMBDA_FUNCTION_VERSION", curContext.Version) - os.Setenv("AWS_LAMBDA_FUNCTION_MEMORY_SIZE", curContext.MemSize) - os.Setenv("AWS_LAMBDA_LOG_GROUP_NAME", "/aws/lambda/"+curContext.FnName) - os.Setenv("AWS_LAMBDA_LOG_STREAM_NAME", logStreamName(curContext.Version)) - os.Setenv("AWS_REGION", curContext.Region) - os.Setenv("AWS_DEFAULT_REGION", curContext.Region) - os.Setenv("_X_AMZN_TRACE_ID", curContext.XAmznTraceID) - - runtimeAddress := ":" + runtimePort - if apiPort != runtimePort { - // We can restrict runtime to 127.0.0.1 if we don't need the port for the Lambda API - runtimeAddress = "127.0.0.1" + runtimeAddress - } - runtimeListener, err := net.Listen("tcp", runtimeAddress) - if err != nil { - log.Fatal(err) - return - } - - var runtimeServer *http.Server - - runtimeRouter := createRuntimeRouter() - runtimeServer = &http.Server{Handler: addAPIRoutes(runtimeRouter)} - - go runtimeServer.Serve(runtimeListener) - - exitCode := 0 - - serverInitEnd = time.Now() - - if stayOpen { - if watchMode { - setupFileWatchers() - } - setupSighupHandler() - systemLog(fmt.Sprintf("Lambda API listening on port %s...", apiPort)) - <-interrupt - } else { - res, err := http.Post( - "http://127.0.0.1:"+runtimePort+"/2015-03-31/functions/"+curContext.FnName+"/invocations", - "application/json", - bytes.NewBuffer(eventBody), - ) - if err != nil { - log.Fatal(err) - return - } - functionError := res.Header.Get("X-Amz-Function-Error") - - body, err := ioutil.ReadAll(res.Body) - if err != nil { - log.Fatal(err) - return - } - res.Body.Close() - - fmt.Println("\n" + formatOneLineJSON(body)) - - if functionError != "" { - exitCode = 1 - } - } - - exit(exitCode) -} - -func setupSighupHandler() { - sighupReceiver := make(chan os.Signal, 1) - signal.Notify(sighupReceiver, syscall.SIGHUP) - go func() { - for { - <-sighupReceiver - systemLog(fmt.Sprintf("SIGHUP received, restarting bootstrap...")) - reboot() - } - }() -} - -func setupFileWatchers() { - fileWatcher := make(chan notify.EventInfo, 1) - if err := notify.Watch("/var/task/...", fileWatcher, notify.All); err != nil { - log.Fatal(err) - } - if err := notify.Watch("/opt/...", fileWatcher, notify.All); err != nil { - log.Fatal(err) - } - go func() { - for { - ei := <-fileWatcher - debug("Received notify event: ", ei) - systemLog(fmt.Sprintf("Handler/layer file changed, restarting bootstrap...")) - reboot() - } - }() -} - -func formatOneLineJSON(body []byte) string { - payloadObj := &json.RawMessage{} - if json.Unmarshal(body, payloadObj) == nil { - if formattedPayload, err := json.Marshal(payloadObj); err == nil { - body = formattedPayload - } - } - return string(body) -} - -func ensureBootstrapIsRunning(context *mockLambdaContext) error { - if noBootstrap || bootstrapIsRunning { - return nil - } - bootstrapMutex.Lock() - defer bootstrapMutex.Unlock() - if bootstrapIsRunning { - return nil - } - for _, cmdPath := range []string{*bootstrapPath, "/var/task/bootstrap", "/opt/bootstrap"} { - if fi, err := os.Stat(cmdPath); err == nil && !fi.IsDir() { - bootstrapCmd = exec.Command(cmdPath, bootstrapArgs...) - break - } - } - if bootstrapCmd == nil { - return fmt.Errorf("Couldn't find valid bootstrap(s): [/var/task/bootstrap /opt/bootstrap]") - } - - awsAccessKey := getEnv("AWS_ACCESS_KEY", os.Getenv("AWS_ACCESS_KEY_ID")) - awsSecretKey := getEnv("AWS_SECRET_KEY", os.Getenv("AWS_SECRET_ACCESS_KEY")) - awsSessionToken := getEnv("AWS_SESSION_TOKEN", os.Getenv("AWS_SECURITY_TOKEN")) - - bootstrapCmd.Env = append(os.Environ(), - "AWS_LAMBDA_RUNTIME_API=127.0.0.1:"+runtimePort, - "AWS_ACCESS_KEY_ID="+awsAccessKey, - "AWS_SECRET_ACCESS_KEY="+awsSecretKey, - ) - if len(awsSessionToken) > 0 { - bootstrapCmd.Env = append(bootstrapCmd.Env, "AWS_SESSION_TOKEN="+awsSessionToken) - } - - if stayOpen { - bootstrapCmd.Stdout = io.MultiWriter(os.Stdout, &logsBuf) - bootstrapCmd.Stderr = io.MultiWriter(os.Stderr, &logsBuf) - } else { - bootstrapCmd.Stdout = os.Stderr - bootstrapCmd.Stderr = os.Stderr - } - if !noModifyLogs { - bootstrapCmd.Stdout = &replaceWriter{writer: bootstrapCmd.Stdout, old: []byte("\r"), new: []byte("\n")} - bootstrapCmd.Stderr = &replaceWriter{writer: bootstrapCmd.Stderr, old: []byte("\r"), new: []byte("\n")} - } - - bootstrapCmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} - - if err := bootstrapCmd.Start(); err != nil { - return err - } - - bootstrapIsRunning = true - bootstrapExitedGracefully = false - - // Get an initial read of memory, and update when we finish - context.MaxMem, _ = allProcsMemoryInMb() - - go func() { - bootstrapCmd.Wait() - bootstrapIsRunning = false - curState = "STATE_INIT" - if !bootstrapExitedGracefully { - // context may have changed, use curContext instead - curContext.SetError(fmt.Errorf("Runtime exited without providing a reason")) - } - }() - - return nil -} - -func exit(exitCode int) { - killBootstrap() - os.Exit(exitCode) -} - -func reboot() { - if noBootstrap { - os.Exit(2) - } else { - killBootstrap() - } -} - -func killBootstrap() { - bootstrapExitedGracefully = true - if bootstrapCmd != nil && bootstrapCmd.Process != nil { - syscall.Kill(-bootstrapCmd.Process.Pid, syscall.SIGKILL) - } -} - -func waitForContext(context *mockLambdaContext) { - if err := ensureBootstrapIsRunning(context); err != nil { - context.EndInvoke(err) - } else { - eventChan <- context - <-context.Done - } -} - -func addAPIRoutes(r *chi.Mux) *chi.Mux { - r.Options("/*", func(w http.ResponseWriter, r *http.Request) { - if r.Header.Get("Origin") == "" { - w.WriteHeader(403) - return - } - w.Header().Set("x-amzn-requestid", fakeGUID()) - w.Header().Set("access-control-allow-origin", "*") - w.Header().Set("access-control-expose-headers", "x-amzn-RequestId,x-amzn-ErrorType,x-amzn-ErrorMessage,Date,x-amz-log-result,x-amz-function-error") - w.Header().Set("access-control-max-age", "172800") - if r.Header.Get("Access-Control-Request-Headers") != "" { - w.Header().Set("access-control-allow-headers", r.Header.Get("Access-Control-Request-Headers")) - } - if r.Header.Get("Access-Control-Request-Method") != "" { - w.Header().Set("access-control-allow-methods", r.Header.Get("Access-Control-Request-Method")) - } - w.WriteHeader(200) - }) - - r.Post("/2015-03-31/functions/{function}/invocations", func(w http.ResponseWriter, r *http.Request) { - context := newContext() - - if r.Header.Get("Origin") != "" { - w.Header().Set("access-control-allow-origin", "*") - w.Header().Set("access-control-expose-headers", "x-amzn-RequestId,x-amzn-ErrorType,x-amzn-ErrorMessage,Date,x-amz-log-result,x-amz-function-error") - } - - if r.Header.Get("X-Amz-Invocation-Type") != "" { - context.InvocationType = r.Header.Get("X-Amz-Invocation-Type") - } - if r.Header.Get("X-Amz-Client-Context") != "" { - buf, err := base64.StdEncoding.DecodeString(r.Header.Get("X-Amz-Client-Context")) - if err != nil { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 400, - ErrorType: "ClientContextDecodingError", - ErrorMessage: err.Error(), - }) - return - } - context.ClientContext = string(buf) - } - if r.Header.Get("X-Amz-Log-Type") != "" { - context.LogType = r.Header.Get("X-Amz-Log-Type") - } - - if context.InvocationType == "DryRun" { - w.Header().Set("x-amzn-RequestId", context.RequestID) - w.Header().Set("x-amzn-Remapped-Content-Length", "0") - w.WriteHeader(204) - return - } - - if body, err := ioutil.ReadAll(r.Body); err == nil { - context.EventBody = string(body) - } else { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 500, - ErrorType: "BodyReadError", - ErrorMessage: err.Error(), - }) - return - } - r.Body.Close() - - if context.InvocationType == "Event" { - w.Header().Set("x-amzn-RequestId", context.RequestID) - w.Header().Set("x-amzn-Remapped-Content-Length", "0") - w.Header().Set("X-Amzn-Trace-Id", context.XAmznTraceID) - w.WriteHeader(202) - go waitForContext(context) - return - } - - waitForContext(context) - - w.Header().Set("Content-Type", "application/json") - w.Header().Set("x-amzn-RequestId", context.RequestID) - w.Header().Set("x-amzn-Remapped-Content-Length", "0") - w.Header().Set("X-Amz-Executed-Version", context.Version) - w.Header().Set("X-Amzn-Trace-Id", context.XAmznTraceID) - - if context.LogType == "Tail" { - // We assume context.LogTail is already base64 encoded - w.Header().Set("X-Amz-Log-Result", context.LogTail) - } - - if context.Reply.Error != nil { - errorType := "Unhandled" - if context.ErrorType != "" { - errorType = context.ErrorType - } - w.Header().Set("X-Amz-Function-Error", errorType) - } - - // Lambda will usually return the payload instead of an error if the payload exists - if len(context.Reply.Payload) > 0 { - w.Header().Set("Content-Length", strconv.FormatInt(int64(len(context.Reply.Payload)), 10)) - w.Write(context.Reply.Payload) - return - } - - if payload, err := json.Marshal(context.Reply.Error); err == nil { - w.Header().Set("Content-Length", strconv.FormatInt(int64(len(payload)), 10)) - w.Write(payload) - } else { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 500, - ErrorType: "ErrorMarshalError", - ErrorMessage: err.Error(), - }) - } - }) - return r -} - -func createRuntimeRouter() *chi.Mux { - r := chi.NewRouter() - - r.Route("/2018-06-01", func(r chi.Router) { - r.Get("/ping", func(w http.ResponseWriter, r *http.Request) { - w.Write([]byte("pong")) - }) - - r.Route("/runtime", func(r chi.Router) { - r. - With(updateState("STATE_INIT_ERROR")). - Post("/init/error", func(w http.ResponseWriter, r *http.Request) { - debug("In /init/error") - curContext = <-eventChan - handleErrorRequest(w, r) - curContext.EndInvoke(nil) - }) - - r. - With(updateState("STATE_INVOKE_NEXT")). - Get("/invocation/next", func(w http.ResponseWriter, r *http.Request) { - debug("In /invocation/next") - - if curContext.Reply != nil { - debug("Reply is not nil") - curContext.EndInvoke(nil) - } - - closeNotify := w.(http.CloseNotifier).CloseNotify() - go func() { - <-closeNotify - debug("Connection closed, sending ignore event") - eventChan <- &mockLambdaContext{Ignore: true} - }() - - debug("Waiting for next event...") - context := <-eventChan - if context.Ignore { - debug("Ignore event received, returning") - w.Write([]byte{}) - return - } - curContext = context - context.LogStartRequest() - - w.Header().Set("Content-Type", "application/json") - w.Header().Set("Lambda-Runtime-Aws-Request-Id", context.RequestID) - w.Header().Set("Lambda-Runtime-Deadline-Ms", strconv.FormatInt(context.Deadline().UnixNano()/int64(time.Millisecond), 10)) - w.Header().Set("Lambda-Runtime-Invoked-Function-Arn", context.InvokedFunctionArn) - w.Header().Set("Lambda-Runtime-Trace-Id", context.XAmznTraceID) - - if context.ClientContext != "" { - w.Header().Set("Lambda-Runtime-Client-Context", context.ClientContext) - } - if context.CognitoIdentity != "" { - w.Header().Set("Lambda-Runtime-Cognito-Identity", context.CognitoIdentity) - } - - if context.LogType != "" { - w.Header().Set("Docker-Lambda-Log-Type", context.LogType) - } - - w.Write([]byte(context.EventBody)) - }) - - r.Route("/invocation/{requestID}", func(r chi.Router) { - r.Use(awsRequestIDValidator) - - r. - With(updateState("STATE_INVOKE_RESPONSE")). - Post("/response", func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - if err != nil { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 500, - ErrorType: "BodyReadError", // Not sure what this would be in production? - ErrorMessage: err.Error(), - }) - return - } - r.Body.Close() - - debug("Setting Reply in /response") - curContext.Reply = &invokeResponse{Payload: body} - - curContext.SetLogTail(r) - curContext.SetInitEnd(r) - - render.Render(w, r, acceptedResponse) - w.(http.Flusher).Flush() - }) - - r. - With(updateState("STATE_INVOKE_ERROR")). - Post("/error", handleErrorRequest) - }) - }) - }) - return r -} - -func handleErrorRequest(w http.ResponseWriter, r *http.Request) { - lambdaErr := &lambdaError{} - response := acceptedResponse - - body, err := ioutil.ReadAll(r.Body) - if err != nil || json.Unmarshal(body, lambdaErr) != nil { - debug("Could not parse error body as JSON") - debug(body) - response = &statusResponse{Status: "InvalidErrorShape", HTTPStatusCode: 299} - lambdaErr = &lambdaError{Message: "InvalidErrorShape"} - } - r.Body.Close() - - errorType := r.Header.Get("Lambda-Runtime-Function-Error-Type") - if errorType != "" { - curContext.ErrorType = errorType - } - - // TODO: Figure out whether we want to handle Lambda-Runtime-Function-XRay-Error-Cause - - debug("Setting Reply in handleErrorRequest") - debug(lambdaErr) - - curContext.Reply = &invokeResponse{Error: lambdaErr} - - curContext.SetLogTail(r) - curContext.SetInitEnd(r) - - render.Render(w, r, response) - w.(http.Flusher).Flush() -} - -func updateState(nextState string) func(http.Handler) http.Handler { - return func(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if _, ok := transitions[nextState][curState]; !ok { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 403, - ErrorType: "InvalidStateTransition", - ErrorMessage: fmt.Sprintf("Transition from %s to %s is not allowed.", curState, nextState), - }) - return - } - curState = nextState - next.ServeHTTP(w, r) - }) - } -} - -func awsRequestIDValidator(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - requestID := chi.URLParam(r, "requestID") - - if requestID != curContext.RequestID { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 400, - ErrorType: "InvalidRequestID", - ErrorMessage: "Invalid request ID", - }) - return - } - - ctx := context.WithValue(r.Context(), keyRequestID, requestID) - - next.ServeHTTP(w, r.WithContext(ctx)) - }) -} - -type statusResponse struct { - HTTPStatusCode int `json:"-"` - Status string `json:"status"` -} - -func (sr *statusResponse) Render(w http.ResponseWriter, r *http.Request) error { - render.Status(r, sr.HTTPStatusCode) - return nil -} - -type errResponse struct { - HTTPStatusCode int `json:"-"` - ErrorType string `json:"errorType,omitempty"` - ErrorMessage string `json:"errorMessage"` -} - -func (e *errResponse) Render(w http.ResponseWriter, r *http.Request) error { - render.Status(r, e.HTTPStatusCode) - return nil -} - -func renderJSON(w http.ResponseWriter, r *http.Request, v interface{}) { - buf := &bytes.Buffer{} - enc := json.NewEncoder(buf) - enc.SetEscapeHTML(true) - if err := enc.Encode(v); err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - w.Header().Set("Content-Type", "application/json") - if status, ok := r.Context().Value(render.StatusCtxKey).(int); ok { - w.WriteHeader(status) - } - w.Write(buf.Bytes()) -} - -func getEnv(key, fallback string) string { - value := os.Getenv(key) - if value != "" { - return value - } - return fallback -} - -func fakeGUID() string { - randBuf := make([]byte, 16) - rand.Read(randBuf) - - hexBuf := make([]byte, hex.EncodedLen(len(randBuf))+4) - - hex.Encode(hexBuf[0:8], randBuf[0:4]) - hexBuf[8] = '-' - hex.Encode(hexBuf[9:13], randBuf[4:6]) - hexBuf[13] = '-' - hex.Encode(hexBuf[14:18], randBuf[6:8]) - hexBuf[18] = '-' - hex.Encode(hexBuf[19:23], randBuf[8:10]) - hexBuf[23] = '-' - hex.Encode(hexBuf[24:], randBuf[10:]) - - hexBuf[14] = '1' // Make it look like a v1 guid - - return string(hexBuf) -} - -func logStreamName(version string) string { - randBuf := make([]byte, 16) - rand.Read(randBuf) - - hexBuf := make([]byte, hex.EncodedLen(len(randBuf))) - hex.Encode(hexBuf, randBuf) - - return time.Now().Format("2006/01/02") + "/[" + version + "]" + string(hexBuf) -} - -func arn(region string, accountID string, fnName string) string { - nonDigit := regexp.MustCompile(`[^\d]`) - return "arn:aws:lambda:" + region + ":" + nonDigit.ReplaceAllString(accountID, "") + ":function:" + fnName -} - -func allProcsMemoryInMb() (uint64, error) { - files, err := ioutil.ReadDir("/proc/") - if err != nil { - return 0, err - } - totalMem := uint64(0) - for _, file := range files { - if pid, err := strconv.Atoi(file.Name()); err == nil { - pidMem, err := calculateMemoryInKb(pid) - if err != nil { - return 0, err - } - totalMem += pidMem - } - } - return totalMem / 1024, nil -} - -// Thanks to https://stackoverflow.com/a/31881979 -func calculateMemoryInKb(pid int) (uint64, error) { - f, err := os.Open(fmt.Sprintf("/proc/%d/smaps", pid)) - if err != nil { - return 0, err - } - defer f.Close() - - res := uint64(0) - pfx := []byte("Pss:") - r := bufio.NewScanner(f) - for r.Scan() { - line := r.Bytes() - if bytes.HasPrefix(line, pfx) { - var size uint64 - _, err := fmt.Sscanf(string(line[4:]), "%d", &size) - if err != nil { - return 0, err - } - res += size - } - } - if err := r.Err(); err != nil { - return 0, err - } - - return res, nil -} - -func getErrorType(err interface{}) string { - errorType := reflect.TypeOf(err) - if errorType.Kind() == reflect.Ptr { - return errorType.Elem().Name() - } - return errorType.Name() -} - -func debug(v ...interface{}) { - if logDebug { - log.Println(v...) - } -} - -func systemLog(msg string) { - fmt.Fprintln(os.Stderr, "\033[32m"+msg+"\033[0m") -} - -type exitError struct { - err error - context *mockLambdaContext -} - -func (e *exitError) Error() string { - return fmt.Sprintf("RequestId: %s Error: %s", e.context.RequestID, e.err.Error()) -} - -type lambdaError struct { - Type string `json:"errorType,omitempty"` - Message string `json:"errorMessage"` - StackTrace []*string `json:"stackTrace,omitempty"` - Cause *lambdaError `json:"cause,omitempty"` -} - -type mockLambdaContext struct { - RequestID string - EventBody string - FnName string - Version string - MemSize string - Timeout string - Region string - AccountID string - XAmznTraceID string - InvokedFunctionArn string - ClientContext string - CognitoIdentity string - Start time.Time - InvokeWait time.Time - InitEnd time.Time - TimeoutDuration time.Duration - Reply *invokeResponse - Done chan bool - MaxMem uint64 - InvocationType string - LogType string - LogTail string // base64 encoded tail, no greater than 4096 bytes - ErrorType string // Unhandled vs Handled - Ended bool - Ignore bool -} - -func (mc *mockLambdaContext) ParseTimeout() { - timeoutDuration, err := time.ParseDuration(mc.Timeout + "s") - if err != nil { - panic(err) - } - mc.TimeoutDuration = timeoutDuration -} - -func (mc *mockLambdaContext) ParseFunctionArn() { - mc.InvokedFunctionArn = getEnv("AWS_LAMBDA_FUNCTION_INVOKED_ARN", arn(mc.Region, mc.AccountID, mc.FnName)) -} - -func (mc *mockLambdaContext) Deadline() time.Time { - return mc.Start.Add(mc.TimeoutDuration) -} - -func (mc *mockLambdaContext) HasExpired() bool { - return time.Now().After(mc.Deadline()) -} - -func (mc *mockLambdaContext) TimeoutErr() error { - return fmt.Errorf("%s %s Task timed out after %s.00 seconds", time.Now().Format("2006-01-02T15:04:05.999Z"), - mc.RequestID, mc.Timeout) -} - -func (mc *mockLambdaContext) SetLogTail(r *http.Request) { - defer logsBuf.Reset() - - mc.LogTail = "" - - if mc.LogType != "Tail" { - return - } - if noBootstrap { - mc.LogTail = r.Header.Get("Docker-Lambda-Log-Result") - return - } - - // This is very annoying but seems to be necessary to ensure we get all the stdout/stderr from the subprocess - time.Sleep(1 * time.Millisecond) - - logs := logsBuf.Bytes() - - if len(logs) == 0 { - return - } - - if len(logs) > 4096 { - logs = logs[len(logs)-4096:] - } - mc.LogTail = base64.StdEncoding.EncodeToString(logs) -} - -func (mc *mockLambdaContext) SetInitEnd(r *http.Request) { - invokeWaitHeader := r.Header.Get("Docker-Lambda-Invoke-Wait") - if invokeWaitHeader != "" { - invokeWaitMs, err := strconv.ParseInt(invokeWaitHeader, 10, 64) - if err != nil { - log.Fatal(fmt.Errorf("Could not parse Docker-Lambda-Invoke-Wait header as int. Error: %s", err)) - return - } - mc.InvokeWait = time.Unix(0, invokeWaitMs*int64(time.Millisecond)) - } - initEndHeader := r.Header.Get("Docker-Lambda-Init-End") - if initEndHeader != "" { - initEndMs, err := strconv.ParseInt(initEndHeader, 10, 64) - if err != nil { - log.Fatal(fmt.Errorf("Could not parse Docker-Lambda-Init-End header as int. Error: %s", err)) - return - } - mc.InitEnd = time.Unix(0, initEndMs*int64(time.Millisecond)) - } -} - -func (mc *mockLambdaContext) SetError(exitErr error) { - err := &exitError{err: exitErr, context: mc} - responseErr := lambdaError{ - Message: err.Error(), - Type: getErrorType(err), - } - if responseErr.Type == "errorString" { - responseErr.Type = "" - if responseErr.Message == "unexpected EOF" { - responseErr.Message = "RequestId: " + mc.RequestID + " Process exited before completing request" - } - } else if responseErr.Type == "ExitError" { - responseErr.Type = "Runtime.ExitError" // XXX: Hack to add 'Runtime.' to error type - } - debug("Setting Reply in SetError") - debug(responseErr) - if mc.Reply == nil { - mc.Reply = &invokeResponse{Error: &responseErr} - } else { - mc.Reply.Error = &responseErr - } -} - -func (mc *mockLambdaContext) EndInvoke(exitErr error) { - debug("EndInvoke()") - if mc.Ended { - return - } - mc.Ended = true - if exitErr != nil { - debug(exitErr) - mc.SetError(exitErr) - } else if (mc.Reply == nil || mc.Reply.Error == nil) && mc.HasExpired() { - mc.Reply = &invokeResponse{ - Error: &lambdaError{ - Message: mc.TimeoutErr().Error(), - }, - } - } - if mc.InitEnd.IsZero() { - mc.LogStartRequest() - } - - mc.LogEndRequest() - - if exitErr == nil { - mc.Done <- true - } -} - -func (mc *mockLambdaContext) LogStartRequest() { - mc.InitEnd = time.Now() - systemLog("START RequestId: " + mc.RequestID + " Version: " + mc.Version) -} - -func (mc *mockLambdaContext) LogEndRequest() { - maxMem, _ := allProcsMemoryInMb() - if maxMem > mc.MaxMem { - mc.MaxMem = maxMem - } - - diffMs := math.Min(float64(time.Now().Sub(mc.InitEnd).Nanoseconds()), - float64(mc.TimeoutDuration.Nanoseconds())) / float64(time.Millisecond) - - initStr := "" - if !initPrinted { - proc1stat, _ := os.Stat("/proc/1") - processStartTime := proc1stat.ModTime() - if mc.InvokeWait.IsZero() { - mc.InvokeWait = serverInitEnd - } - if mc.InvokeWait.Before(processStartTime) { - mc.InvokeWait = processStartTime - } - initDiffNs := mc.InvokeWait.Sub(proc1stat.ModTime()).Nanoseconds() + mc.InitEnd.Sub(mc.Start).Nanoseconds() - initDiffMs := math.Min(float64(initDiffNs), float64(mc.TimeoutDuration.Nanoseconds())) / float64(time.Millisecond) - initStr = fmt.Sprintf("Init Duration: %.2f ms\t", initDiffMs) - initPrinted = true - } - - systemLog("END RequestId: " + mc.RequestID) - systemLog(fmt.Sprintf( - "REPORT RequestId: %s\t"+ - initStr+ - "Duration: %.2f ms\t"+ - "Billed Duration: %.f ms\t"+ - "Memory Size: %s MB\t"+ - "Max Memory Used: %d MB\t", - mc.RequestID, diffMs, math.Ceil(diffMs), mc.MemSize, mc.MaxMem)) -} - -type invokeResponse struct { - Payload []byte - Error *lambdaError -} - -type replaceWriter struct { - writer io.Writer - old []byte - new []byte -} - -func (r *replaceWriter) Write(p []byte) (n int, err error) { - return r.writer.Write(bytes.ReplaceAll(p, r.old, r.new)) -} diff --git a/runtimes/provided.al2-arm64/run/publish.sh b/runtimes/provided.al2-arm64/run/publish.sh deleted file mode 100755 index 458f2984..00000000 --- a/runtimes/provided.al2-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:provided.al2" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/provided.al2-x86_64/build/Dockerfile b/runtimes/provided.al2-x86_64/build/Dockerfile deleted file mode 100644 index b05aa0b8..00000000 --- a/runtimes/provided.al2-x86_64/build/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM mlupin/docker-lambda:provided.al2-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 diff --git a/runtimes/provided.al2-x86_64/build/build.sh b/runtimes/provided.al2-x86_64/build/build.sh deleted file mode 100755 index fd0eb0d0..00000000 --- a/runtimes/provided.al2-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:provided.al2-build-x86_64 . diff --git a/runtimes/provided.al2-x86_64/build/publish.sh b/runtimes/provided.al2-x86_64/build/publish.sh deleted file mode 100755 index 05dda223..00000000 --- a/runtimes/provided.al2-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:provided.al2-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/provided.al2-x86_64/run/Dockerfile b/runtimes/provided.al2-x86_64/run/Dockerfile deleted file mode 100644 index c82b05f5..00000000 --- a/runtimes/provided.al2-x86_64/run/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM golang:1 - -WORKDIR /app - -ENV CGO_ENABLED=0 - -COPY go.mod go.sum ./ -RUN go mod download - -COPY init.go ./ -RUN GOARCH=amd64 GOOS=linux go build init.go - -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH - -COPY --from=0 /app/init /var/runtime/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/runtime/init"] diff --git a/runtimes/provided.al2-x86_64/run/build.sh b/runtimes/provided.al2-x86_64/run/build.sh deleted file mode 100755 index eae8b216..00000000 --- a/runtimes/provided.al2-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --no-cache --squash -t mlupin/docker-lambda:provided.al2-x86_64 . diff --git a/runtimes/provided.al2-x86_64/run/go.mod b/runtimes/provided.al2-x86_64/run/go.mod deleted file mode 100644 index 28c72849..00000000 --- a/runtimes/provided.al2-x86_64/run/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module init - -require ( - github.com/go-chi/chi v4.0.2+incompatible - github.com/go-chi/render v1.0.1 - github.com/rjeczalik/notify v0.9.2 -) - -go 1.15 diff --git a/runtimes/provided.al2-x86_64/run/go.sum b/runtimes/provided.al2-x86_64/run/go.sum deleted file mode 100644 index beef513a..00000000 --- a/runtimes/provided.al2-x86_64/run/go.sum +++ /dev/null @@ -1,8 +0,0 @@ -github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= -github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-chi/render v1.0.1 h1:4/5tis2cKaNdnv9zFLfXzcquC9HbeZgCnxGnKrltBS8= -github.com/go-chi/render v1.0.1/go.mod h1:pq4Rr7HbnsdaeHagklXub+p6Wd16Af5l9koip1OvJns= -github.com/rjeczalik/notify v0.9.2 h1:MiTWrPj55mNDHEiIX5YUSKefw/+lCQVoAFmD6oQm5w8= -github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= -golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7 h1:bit1t3mgdR35yN0cX0G8orgLtOuyL9Wqxa1mccLB0ig= -golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/runtimes/provided.al2-x86_64/run/init.go b/runtimes/provided.al2-x86_64/run/init.go deleted file mode 100644 index 62cdff6a..00000000 --- a/runtimes/provided.al2-x86_64/run/init.go +++ /dev/null @@ -1,997 +0,0 @@ -package main - -import ( - "bufio" - "bytes" - "context" - "encoding/base64" - "encoding/hex" - "encoding/json" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "math" - "math/rand" - "net" - "net/http" - "os" - "os/exec" - "os/signal" - "reflect" - "regexp" - "strconv" - "sync" - "syscall" - "time" - - "github.com/go-chi/chi" - "github.com/go-chi/render" - "github.com/rjeczalik/notify" -) - -var logDebug = os.Getenv("DOCKER_LAMBDA_DEBUG") != "" -var stayOpen = os.Getenv("DOCKER_LAMBDA_STAY_OPEN") != "" -var noBootstrap = os.Getenv("DOCKER_LAMBDA_NO_BOOTSTRAP") != "" -var apiPort = getEnv("DOCKER_LAMBDA_API_PORT", "9001") -var runtimePort = getEnv("DOCKER_LAMBDA_RUNTIME_PORT", "9001") -var useStdin = os.Getenv("DOCKER_LAMBDA_USE_STDIN") != "" -var noModifyLogs = os.Getenv("DOCKER_LAMBDA_NO_MODIFY_LOGS") != "" -var watchMode = os.Getenv("DOCKER_LAMBDA_WATCH") != "" - -var curState = "STATE_INIT" - -var transitions = map[string]map[string]bool{ - "STATE_INIT_ERROR": {"STATE_INIT": true}, - "STATE_INVOKE_NEXT": {"STATE_INIT": true, "STATE_INVOKE_NEXT": true, "STATE_INVOKE_RESPONSE": true, "STATE_INVOKE_ERROR": true}, - "STATE_INVOKE_RESPONSE": {"STATE_INVOKE_NEXT": true}, - "STATE_INVOKE_ERROR": {"STATE_INVOKE_NEXT": true}, -} - -var acceptedResponse = &statusResponse{Status: "OK", HTTPStatusCode: 202} - -var curContext *mockLambdaContext -var bootstrapCmd *exec.Cmd -var initPrinted bool -var eventChan chan *mockLambdaContext -var bootstrapExitedGracefully bool -var bootstrapIsRunning bool -var bootstrapPath *string -var bootstrapArgs []string -var bootstrapMutex sync.Mutex -var logsBuf bytes.Buffer -var serverInitEnd time.Time - -func newContext() *mockLambdaContext { - context := &mockLambdaContext{ - RequestID: fakeGUID(), - FnName: getEnv("AWS_LAMBDA_FUNCTION_NAME", "test"), - Version: getEnv("AWS_LAMBDA_FUNCTION_VERSION", "$LATEST"), - MemSize: getEnv("AWS_LAMBDA_FUNCTION_MEMORY_SIZE", "1536"), - Timeout: getEnv("AWS_LAMBDA_FUNCTION_TIMEOUT", "300"), - Region: getEnv("AWS_REGION", getEnv("AWS_DEFAULT_REGION", "us-east-1")), - AccountID: getEnv("AWS_ACCOUNT_ID", strconv.FormatInt(int64(rand.Int31()), 10)), - XAmznTraceID: getEnv("_X_AMZN_TRACE_ID", ""), - ClientContext: getEnv("AWS_LAMBDA_CLIENT_CONTEXT", ""), - CognitoIdentity: getEnv("AWS_LAMBDA_COGNITO_IDENTITY", ""), - Start: time.Now(), - Done: make(chan bool), - } - context.ParseTimeout() - context.ParseFunctionArn() - return context -} - -type key int - -const ( - keyRequestID key = iota -) - -func main() { - rand.Seed(time.Now().UTC().UnixNano()) - log.SetOutput(os.Stderr) - - interrupt := make(chan os.Signal, 1) - signal.Notify(interrupt, os.Interrupt) - - render.Respond = renderJSON - - eventChan = make(chan *mockLambdaContext) - - bootstrapPath = flag.String("bootstrap", "/var/runtime/bootstrap", "path to bootstrap") - bootstrapArgsString := flag.String("bootstrap-args", "[]", "additional arguments passed to bootstrap, as a stringified JSON Array") - flag.Bool("enable-msg-logs", false, "enable message logs") - - flag.Parse() - positionalArgs := flag.Args() - - if err := json.Unmarshal([]byte(*bootstrapArgsString), &bootstrapArgs); err != nil { - log.Fatal(fmt.Errorf("Value of --bootstrap-args should be a JSON Array. Error: %s", err)) - return - } - - var handler string - if len(positionalArgs) > 0 { - handler = positionalArgs[0] - } else { - handler = getEnv("AWS_LAMBDA_FUNCTION_HANDLER", getEnv("_HANDLER", "handler")) - } - os.Setenv("_HANDLER", handler) - - var eventBody []byte - if len(positionalArgs) > 1 { - eventBody = []byte(positionalArgs[1]) - } else { - eventBody = []byte(os.Getenv("AWS_LAMBDA_EVENT_BODY")) - if len(eventBody) == 0 { - if useStdin { - eventBody, _ = ioutil.ReadAll(os.Stdin) - } else { - eventBody = []byte("{}") - } - } - } - - curContext = newContext() - - os.Setenv("AWS_LAMBDA_FUNCTION_NAME", curContext.FnName) - os.Setenv("AWS_LAMBDA_FUNCTION_VERSION", curContext.Version) - os.Setenv("AWS_LAMBDA_FUNCTION_MEMORY_SIZE", curContext.MemSize) - os.Setenv("AWS_LAMBDA_LOG_GROUP_NAME", "/aws/lambda/"+curContext.FnName) - os.Setenv("AWS_LAMBDA_LOG_STREAM_NAME", logStreamName(curContext.Version)) - os.Setenv("AWS_REGION", curContext.Region) - os.Setenv("AWS_DEFAULT_REGION", curContext.Region) - os.Setenv("_X_AMZN_TRACE_ID", curContext.XAmznTraceID) - - runtimeAddress := ":" + runtimePort - if apiPort != runtimePort { - // We can restrict runtime to 127.0.0.1 if we don't need the port for the Lambda API - runtimeAddress = "127.0.0.1" + runtimeAddress - } - runtimeListener, err := net.Listen("tcp", runtimeAddress) - if err != nil { - log.Fatal(err) - return - } - - var runtimeServer *http.Server - - runtimeRouter := createRuntimeRouter() - runtimeServer = &http.Server{Handler: addAPIRoutes(runtimeRouter)} - - go runtimeServer.Serve(runtimeListener) - - exitCode := 0 - - serverInitEnd = time.Now() - - if stayOpen { - if watchMode { - setupFileWatchers() - } - setupSighupHandler() - systemLog(fmt.Sprintf("Lambda API listening on port %s...", apiPort)) - <-interrupt - } else { - res, err := http.Post( - "http://127.0.0.1:"+runtimePort+"/2015-03-31/functions/"+curContext.FnName+"/invocations", - "application/json", - bytes.NewBuffer(eventBody), - ) - if err != nil { - log.Fatal(err) - return - } - functionError := res.Header.Get("X-Amz-Function-Error") - - body, err := ioutil.ReadAll(res.Body) - if err != nil { - log.Fatal(err) - return - } - res.Body.Close() - - fmt.Println("\n" + formatOneLineJSON(body)) - - if functionError != "" { - exitCode = 1 - } - } - - exit(exitCode) -} - -func setupSighupHandler() { - sighupReceiver := make(chan os.Signal, 1) - signal.Notify(sighupReceiver, syscall.SIGHUP) - go func() { - for { - <-sighupReceiver - systemLog(fmt.Sprintf("SIGHUP received, restarting bootstrap...")) - reboot() - } - }() -} - -func setupFileWatchers() { - fileWatcher := make(chan notify.EventInfo, 1) - if err := notify.Watch("/var/task/...", fileWatcher, notify.All); err != nil { - log.Fatal(err) - } - if err := notify.Watch("/opt/...", fileWatcher, notify.All); err != nil { - log.Fatal(err) - } - go func() { - for { - ei := <-fileWatcher - debug("Received notify event: ", ei) - systemLog(fmt.Sprintf("Handler/layer file changed, restarting bootstrap...")) - reboot() - } - }() -} - -func formatOneLineJSON(body []byte) string { - payloadObj := &json.RawMessage{} - if json.Unmarshal(body, payloadObj) == nil { - if formattedPayload, err := json.Marshal(payloadObj); err == nil { - body = formattedPayload - } - } - return string(body) -} - -func ensureBootstrapIsRunning(context *mockLambdaContext) error { - if noBootstrap || bootstrapIsRunning { - return nil - } - bootstrapMutex.Lock() - defer bootstrapMutex.Unlock() - if bootstrapIsRunning { - return nil - } - for _, cmdPath := range []string{*bootstrapPath, "/var/task/bootstrap", "/opt/bootstrap"} { - if fi, err := os.Stat(cmdPath); err == nil && !fi.IsDir() { - bootstrapCmd = exec.Command(cmdPath, bootstrapArgs...) - break - } - } - if bootstrapCmd == nil { - return fmt.Errorf("Couldn't find valid bootstrap(s): [/var/task/bootstrap /opt/bootstrap]") - } - - awsAccessKey := getEnv("AWS_ACCESS_KEY", os.Getenv("AWS_ACCESS_KEY_ID")) - awsSecretKey := getEnv("AWS_SECRET_KEY", os.Getenv("AWS_SECRET_ACCESS_KEY")) - awsSessionToken := getEnv("AWS_SESSION_TOKEN", os.Getenv("AWS_SECURITY_TOKEN")) - - bootstrapCmd.Env = append(os.Environ(), - "AWS_LAMBDA_RUNTIME_API=127.0.0.1:"+runtimePort, - "AWS_ACCESS_KEY_ID="+awsAccessKey, - "AWS_SECRET_ACCESS_KEY="+awsSecretKey, - ) - if len(awsSessionToken) > 0 { - bootstrapCmd.Env = append(bootstrapCmd.Env, "AWS_SESSION_TOKEN="+awsSessionToken) - } - - if stayOpen { - bootstrapCmd.Stdout = io.MultiWriter(os.Stdout, &logsBuf) - bootstrapCmd.Stderr = io.MultiWriter(os.Stderr, &logsBuf) - } else { - bootstrapCmd.Stdout = os.Stderr - bootstrapCmd.Stderr = os.Stderr - } - if !noModifyLogs { - bootstrapCmd.Stdout = &replaceWriter{writer: bootstrapCmd.Stdout, old: []byte("\r"), new: []byte("\n")} - bootstrapCmd.Stderr = &replaceWriter{writer: bootstrapCmd.Stderr, old: []byte("\r"), new: []byte("\n")} - } - - bootstrapCmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} - - if err := bootstrapCmd.Start(); err != nil { - return err - } - - bootstrapIsRunning = true - bootstrapExitedGracefully = false - - // Get an initial read of memory, and update when we finish - context.MaxMem, _ = allProcsMemoryInMb() - - go func() { - bootstrapCmd.Wait() - bootstrapIsRunning = false - curState = "STATE_INIT" - if !bootstrapExitedGracefully { - // context may have changed, use curContext instead - curContext.SetError(fmt.Errorf("Runtime exited without providing a reason")) - } - }() - - return nil -} - -func exit(exitCode int) { - killBootstrap() - os.Exit(exitCode) -} - -func reboot() { - if noBootstrap { - os.Exit(2) - } else { - killBootstrap() - } -} - -func killBootstrap() { - bootstrapExitedGracefully = true - if bootstrapCmd != nil && bootstrapCmd.Process != nil { - syscall.Kill(-bootstrapCmd.Process.Pid, syscall.SIGKILL) - } -} - -func waitForContext(context *mockLambdaContext) { - if err := ensureBootstrapIsRunning(context); err != nil { - context.EndInvoke(err) - } else { - eventChan <- context - <-context.Done - } -} - -func addAPIRoutes(r *chi.Mux) *chi.Mux { - r.Options("/*", func(w http.ResponseWriter, r *http.Request) { - if r.Header.Get("Origin") == "" { - w.WriteHeader(403) - return - } - w.Header().Set("x-amzn-requestid", fakeGUID()) - w.Header().Set("access-control-allow-origin", "*") - w.Header().Set("access-control-expose-headers", "x-amzn-RequestId,x-amzn-ErrorType,x-amzn-ErrorMessage,Date,x-amz-log-result,x-amz-function-error") - w.Header().Set("access-control-max-age", "172800") - if r.Header.Get("Access-Control-Request-Headers") != "" { - w.Header().Set("access-control-allow-headers", r.Header.Get("Access-Control-Request-Headers")) - } - if r.Header.Get("Access-Control-Request-Method") != "" { - w.Header().Set("access-control-allow-methods", r.Header.Get("Access-Control-Request-Method")) - } - w.WriteHeader(200) - }) - - r.Post("/2015-03-31/functions/{function}/invocations", func(w http.ResponseWriter, r *http.Request) { - context := newContext() - - if r.Header.Get("Origin") != "" { - w.Header().Set("access-control-allow-origin", "*") - w.Header().Set("access-control-expose-headers", "x-amzn-RequestId,x-amzn-ErrorType,x-amzn-ErrorMessage,Date,x-amz-log-result,x-amz-function-error") - } - - if r.Header.Get("X-Amz-Invocation-Type") != "" { - context.InvocationType = r.Header.Get("X-Amz-Invocation-Type") - } - if r.Header.Get("X-Amz-Client-Context") != "" { - buf, err := base64.StdEncoding.DecodeString(r.Header.Get("X-Amz-Client-Context")) - if err != nil { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 400, - ErrorType: "ClientContextDecodingError", - ErrorMessage: err.Error(), - }) - return - } - context.ClientContext = string(buf) - } - if r.Header.Get("X-Amz-Log-Type") != "" { - context.LogType = r.Header.Get("X-Amz-Log-Type") - } - - if context.InvocationType == "DryRun" { - w.Header().Set("x-amzn-RequestId", context.RequestID) - w.Header().Set("x-amzn-Remapped-Content-Length", "0") - w.WriteHeader(204) - return - } - - if body, err := ioutil.ReadAll(r.Body); err == nil { - context.EventBody = string(body) - } else { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 500, - ErrorType: "BodyReadError", - ErrorMessage: err.Error(), - }) - return - } - r.Body.Close() - - if context.InvocationType == "Event" { - w.Header().Set("x-amzn-RequestId", context.RequestID) - w.Header().Set("x-amzn-Remapped-Content-Length", "0") - w.Header().Set("X-Amzn-Trace-Id", context.XAmznTraceID) - w.WriteHeader(202) - go waitForContext(context) - return - } - - waitForContext(context) - - w.Header().Set("Content-Type", "application/json") - w.Header().Set("x-amzn-RequestId", context.RequestID) - w.Header().Set("x-amzn-Remapped-Content-Length", "0") - w.Header().Set("X-Amz-Executed-Version", context.Version) - w.Header().Set("X-Amzn-Trace-Id", context.XAmznTraceID) - - if context.LogType == "Tail" { - // We assume context.LogTail is already base64 encoded - w.Header().Set("X-Amz-Log-Result", context.LogTail) - } - - if context.Reply.Error != nil { - errorType := "Unhandled" - if context.ErrorType != "" { - errorType = context.ErrorType - } - w.Header().Set("X-Amz-Function-Error", errorType) - } - - // Lambda will usually return the payload instead of an error if the payload exists - if len(context.Reply.Payload) > 0 { - w.Header().Set("Content-Length", strconv.FormatInt(int64(len(context.Reply.Payload)), 10)) - w.Write(context.Reply.Payload) - return - } - - if payload, err := json.Marshal(context.Reply.Error); err == nil { - w.Header().Set("Content-Length", strconv.FormatInt(int64(len(payload)), 10)) - w.Write(payload) - } else { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 500, - ErrorType: "ErrorMarshalError", - ErrorMessage: err.Error(), - }) - } - }) - return r -} - -func createRuntimeRouter() *chi.Mux { - r := chi.NewRouter() - - r.Route("/2018-06-01", func(r chi.Router) { - r.Get("/ping", func(w http.ResponseWriter, r *http.Request) { - w.Write([]byte("pong")) - }) - - r.Route("/runtime", func(r chi.Router) { - r. - With(updateState("STATE_INIT_ERROR")). - Post("/init/error", func(w http.ResponseWriter, r *http.Request) { - debug("In /init/error") - curContext = <-eventChan - handleErrorRequest(w, r) - curContext.EndInvoke(nil) - }) - - r. - With(updateState("STATE_INVOKE_NEXT")). - Get("/invocation/next", func(w http.ResponseWriter, r *http.Request) { - debug("In /invocation/next") - - if curContext.Reply != nil { - debug("Reply is not nil") - curContext.EndInvoke(nil) - } - - closeNotify := w.(http.CloseNotifier).CloseNotify() - go func() { - <-closeNotify - debug("Connection closed, sending ignore event") - eventChan <- &mockLambdaContext{Ignore: true} - }() - - debug("Waiting for next event...") - context := <-eventChan - if context.Ignore { - debug("Ignore event received, returning") - w.Write([]byte{}) - return - } - curContext = context - context.LogStartRequest() - - w.Header().Set("Content-Type", "application/json") - w.Header().Set("Lambda-Runtime-Aws-Request-Id", context.RequestID) - w.Header().Set("Lambda-Runtime-Deadline-Ms", strconv.FormatInt(context.Deadline().UnixNano()/int64(time.Millisecond), 10)) - w.Header().Set("Lambda-Runtime-Invoked-Function-Arn", context.InvokedFunctionArn) - w.Header().Set("Lambda-Runtime-Trace-Id", context.XAmznTraceID) - - if context.ClientContext != "" { - w.Header().Set("Lambda-Runtime-Client-Context", context.ClientContext) - } - if context.CognitoIdentity != "" { - w.Header().Set("Lambda-Runtime-Cognito-Identity", context.CognitoIdentity) - } - - if context.LogType != "" { - w.Header().Set("Docker-Lambda-Log-Type", context.LogType) - } - - w.Write([]byte(context.EventBody)) - }) - - r.Route("/invocation/{requestID}", func(r chi.Router) { - r.Use(awsRequestIDValidator) - - r. - With(updateState("STATE_INVOKE_RESPONSE")). - Post("/response", func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - if err != nil { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 500, - ErrorType: "BodyReadError", // Not sure what this would be in production? - ErrorMessage: err.Error(), - }) - return - } - r.Body.Close() - - debug("Setting Reply in /response") - curContext.Reply = &invokeResponse{Payload: body} - - curContext.SetLogTail(r) - curContext.SetInitEnd(r) - - render.Render(w, r, acceptedResponse) - w.(http.Flusher).Flush() - }) - - r. - With(updateState("STATE_INVOKE_ERROR")). - Post("/error", handleErrorRequest) - }) - }) - }) - return r -} - -func handleErrorRequest(w http.ResponseWriter, r *http.Request) { - lambdaErr := &lambdaError{} - response := acceptedResponse - - body, err := ioutil.ReadAll(r.Body) - if err != nil || json.Unmarshal(body, lambdaErr) != nil { - debug("Could not parse error body as JSON") - debug(body) - response = &statusResponse{Status: "InvalidErrorShape", HTTPStatusCode: 299} - lambdaErr = &lambdaError{Message: "InvalidErrorShape"} - } - r.Body.Close() - - errorType := r.Header.Get("Lambda-Runtime-Function-Error-Type") - if errorType != "" { - curContext.ErrorType = errorType - } - - // TODO: Figure out whether we want to handle Lambda-Runtime-Function-XRay-Error-Cause - - debug("Setting Reply in handleErrorRequest") - debug(lambdaErr) - - curContext.Reply = &invokeResponse{Error: lambdaErr} - - curContext.SetLogTail(r) - curContext.SetInitEnd(r) - - render.Render(w, r, response) - w.(http.Flusher).Flush() -} - -func updateState(nextState string) func(http.Handler) http.Handler { - return func(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if _, ok := transitions[nextState][curState]; !ok { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 403, - ErrorType: "InvalidStateTransition", - ErrorMessage: fmt.Sprintf("Transition from %s to %s is not allowed.", curState, nextState), - }) - return - } - curState = nextState - next.ServeHTTP(w, r) - }) - } -} - -func awsRequestIDValidator(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - requestID := chi.URLParam(r, "requestID") - - if requestID != curContext.RequestID { - render.Render(w, r, &errResponse{ - HTTPStatusCode: 400, - ErrorType: "InvalidRequestID", - ErrorMessage: "Invalid request ID", - }) - return - } - - ctx := context.WithValue(r.Context(), keyRequestID, requestID) - - next.ServeHTTP(w, r.WithContext(ctx)) - }) -} - -type statusResponse struct { - HTTPStatusCode int `json:"-"` - Status string `json:"status"` -} - -func (sr *statusResponse) Render(w http.ResponseWriter, r *http.Request) error { - render.Status(r, sr.HTTPStatusCode) - return nil -} - -type errResponse struct { - HTTPStatusCode int `json:"-"` - ErrorType string `json:"errorType,omitempty"` - ErrorMessage string `json:"errorMessage"` -} - -func (e *errResponse) Render(w http.ResponseWriter, r *http.Request) error { - render.Status(r, e.HTTPStatusCode) - return nil -} - -func renderJSON(w http.ResponseWriter, r *http.Request, v interface{}) { - buf := &bytes.Buffer{} - enc := json.NewEncoder(buf) - enc.SetEscapeHTML(true) - if err := enc.Encode(v); err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - w.Header().Set("Content-Type", "application/json") - if status, ok := r.Context().Value(render.StatusCtxKey).(int); ok { - w.WriteHeader(status) - } - w.Write(buf.Bytes()) -} - -func getEnv(key, fallback string) string { - value := os.Getenv(key) - if value != "" { - return value - } - return fallback -} - -func fakeGUID() string { - randBuf := make([]byte, 16) - rand.Read(randBuf) - - hexBuf := make([]byte, hex.EncodedLen(len(randBuf))+4) - - hex.Encode(hexBuf[0:8], randBuf[0:4]) - hexBuf[8] = '-' - hex.Encode(hexBuf[9:13], randBuf[4:6]) - hexBuf[13] = '-' - hex.Encode(hexBuf[14:18], randBuf[6:8]) - hexBuf[18] = '-' - hex.Encode(hexBuf[19:23], randBuf[8:10]) - hexBuf[23] = '-' - hex.Encode(hexBuf[24:], randBuf[10:]) - - hexBuf[14] = '1' // Make it look like a v1 guid - - return string(hexBuf) -} - -func logStreamName(version string) string { - randBuf := make([]byte, 16) - rand.Read(randBuf) - - hexBuf := make([]byte, hex.EncodedLen(len(randBuf))) - hex.Encode(hexBuf, randBuf) - - return time.Now().Format("2006/01/02") + "/[" + version + "]" + string(hexBuf) -} - -func arn(region string, accountID string, fnName string) string { - nonDigit := regexp.MustCompile(`[^\d]`) - return "arn:aws:lambda:" + region + ":" + nonDigit.ReplaceAllString(accountID, "") + ":function:" + fnName -} - -func allProcsMemoryInMb() (uint64, error) { - files, err := ioutil.ReadDir("/proc/") - if err != nil { - return 0, err - } - totalMem := uint64(0) - for _, file := range files { - if pid, err := strconv.Atoi(file.Name()); err == nil { - pidMem, err := calculateMemoryInKb(pid) - if err != nil { - return 0, err - } - totalMem += pidMem - } - } - return totalMem / 1024, nil -} - -// Thanks to https://stackoverflow.com/a/31881979 -func calculateMemoryInKb(pid int) (uint64, error) { - f, err := os.Open(fmt.Sprintf("/proc/%d/smaps", pid)) - if err != nil { - return 0, err - } - defer f.Close() - - res := uint64(0) - pfx := []byte("Pss:") - r := bufio.NewScanner(f) - for r.Scan() { - line := r.Bytes() - if bytes.HasPrefix(line, pfx) { - var size uint64 - _, err := fmt.Sscanf(string(line[4:]), "%d", &size) - if err != nil { - return 0, err - } - res += size - } - } - if err := r.Err(); err != nil { - return 0, err - } - - return res, nil -} - -func getErrorType(err interface{}) string { - errorType := reflect.TypeOf(err) - if errorType.Kind() == reflect.Ptr { - return errorType.Elem().Name() - } - return errorType.Name() -} - -func debug(v ...interface{}) { - if logDebug { - log.Println(v...) - } -} - -func systemLog(msg string) { - fmt.Fprintln(os.Stderr, "\033[32m"+msg+"\033[0m") -} - -type exitError struct { - err error - context *mockLambdaContext -} - -func (e *exitError) Error() string { - return fmt.Sprintf("RequestId: %s Error: %s", e.context.RequestID, e.err.Error()) -} - -type lambdaError struct { - Type string `json:"errorType,omitempty"` - Message string `json:"errorMessage"` - StackTrace []*string `json:"stackTrace,omitempty"` - Cause *lambdaError `json:"cause,omitempty"` -} - -type mockLambdaContext struct { - RequestID string - EventBody string - FnName string - Version string - MemSize string - Timeout string - Region string - AccountID string - XAmznTraceID string - InvokedFunctionArn string - ClientContext string - CognitoIdentity string - Start time.Time - InvokeWait time.Time - InitEnd time.Time - TimeoutDuration time.Duration - Reply *invokeResponse - Done chan bool - MaxMem uint64 - InvocationType string - LogType string - LogTail string // base64 encoded tail, no greater than 4096 bytes - ErrorType string // Unhandled vs Handled - Ended bool - Ignore bool -} - -func (mc *mockLambdaContext) ParseTimeout() { - timeoutDuration, err := time.ParseDuration(mc.Timeout + "s") - if err != nil { - panic(err) - } - mc.TimeoutDuration = timeoutDuration -} - -func (mc *mockLambdaContext) ParseFunctionArn() { - mc.InvokedFunctionArn = getEnv("AWS_LAMBDA_FUNCTION_INVOKED_ARN", arn(mc.Region, mc.AccountID, mc.FnName)) -} - -func (mc *mockLambdaContext) Deadline() time.Time { - return mc.Start.Add(mc.TimeoutDuration) -} - -func (mc *mockLambdaContext) HasExpired() bool { - return time.Now().After(mc.Deadline()) -} - -func (mc *mockLambdaContext) TimeoutErr() error { - return fmt.Errorf("%s %s Task timed out after %s.00 seconds", time.Now().Format("2006-01-02T15:04:05.999Z"), - mc.RequestID, mc.Timeout) -} - -func (mc *mockLambdaContext) SetLogTail(r *http.Request) { - defer logsBuf.Reset() - - mc.LogTail = "" - - if mc.LogType != "Tail" { - return - } - if noBootstrap { - mc.LogTail = r.Header.Get("Docker-Lambda-Log-Result") - return - } - - // This is very annoying but seems to be necessary to ensure we get all the stdout/stderr from the subprocess - time.Sleep(1 * time.Millisecond) - - logs := logsBuf.Bytes() - - if len(logs) == 0 { - return - } - - if len(logs) > 4096 { - logs = logs[len(logs)-4096:] - } - mc.LogTail = base64.StdEncoding.EncodeToString(logs) -} - -func (mc *mockLambdaContext) SetInitEnd(r *http.Request) { - invokeWaitHeader := r.Header.Get("Docker-Lambda-Invoke-Wait") - if invokeWaitHeader != "" { - invokeWaitMs, err := strconv.ParseInt(invokeWaitHeader, 10, 64) - if err != nil { - log.Fatal(fmt.Errorf("Could not parse Docker-Lambda-Invoke-Wait header as int. Error: %s", err)) - return - } - mc.InvokeWait = time.Unix(0, invokeWaitMs*int64(time.Millisecond)) - } - initEndHeader := r.Header.Get("Docker-Lambda-Init-End") - if initEndHeader != "" { - initEndMs, err := strconv.ParseInt(initEndHeader, 10, 64) - if err != nil { - log.Fatal(fmt.Errorf("Could not parse Docker-Lambda-Init-End header as int. Error: %s", err)) - return - } - mc.InitEnd = time.Unix(0, initEndMs*int64(time.Millisecond)) - } -} - -func (mc *mockLambdaContext) SetError(exitErr error) { - err := &exitError{err: exitErr, context: mc} - responseErr := lambdaError{ - Message: err.Error(), - Type: getErrorType(err), - } - if responseErr.Type == "errorString" { - responseErr.Type = "" - if responseErr.Message == "unexpected EOF" { - responseErr.Message = "RequestId: " + mc.RequestID + " Process exited before completing request" - } - } else if responseErr.Type == "ExitError" { - responseErr.Type = "Runtime.ExitError" // XXX: Hack to add 'Runtime.' to error type - } - debug("Setting Reply in SetError") - debug(responseErr) - if mc.Reply == nil { - mc.Reply = &invokeResponse{Error: &responseErr} - } else { - mc.Reply.Error = &responseErr - } -} - -func (mc *mockLambdaContext) EndInvoke(exitErr error) { - debug("EndInvoke()") - if mc.Ended { - return - } - mc.Ended = true - if exitErr != nil { - debug(exitErr) - mc.SetError(exitErr) - } else if (mc.Reply == nil || mc.Reply.Error == nil) && mc.HasExpired() { - mc.Reply = &invokeResponse{ - Error: &lambdaError{ - Message: mc.TimeoutErr().Error(), - }, - } - } - if mc.InitEnd.IsZero() { - mc.LogStartRequest() - } - - mc.LogEndRequest() - - if exitErr == nil { - mc.Done <- true - } -} - -func (mc *mockLambdaContext) LogStartRequest() { - mc.InitEnd = time.Now() - systemLog("START RequestId: " + mc.RequestID + " Version: " + mc.Version) -} - -func (mc *mockLambdaContext) LogEndRequest() { - maxMem, _ := allProcsMemoryInMb() - if maxMem > mc.MaxMem { - mc.MaxMem = maxMem - } - - diffMs := math.Min(float64(time.Now().Sub(mc.InitEnd).Nanoseconds()), - float64(mc.TimeoutDuration.Nanoseconds())) / float64(time.Millisecond) - - initStr := "" - if !initPrinted { - proc1stat, _ := os.Stat("/proc/1") - processStartTime := proc1stat.ModTime() - if mc.InvokeWait.IsZero() { - mc.InvokeWait = serverInitEnd - } - if mc.InvokeWait.Before(processStartTime) { - mc.InvokeWait = processStartTime - } - initDiffNs := mc.InvokeWait.Sub(proc1stat.ModTime()).Nanoseconds() + mc.InitEnd.Sub(mc.Start).Nanoseconds() - initDiffMs := math.Min(float64(initDiffNs), float64(mc.TimeoutDuration.Nanoseconds())) / float64(time.Millisecond) - initStr = fmt.Sprintf("Init Duration: %.2f ms\t", initDiffMs) - initPrinted = true - } - - systemLog("END RequestId: " + mc.RequestID) - systemLog(fmt.Sprintf( - "REPORT RequestId: %s\t"+ - initStr+ - "Duration: %.2f ms\t"+ - "Billed Duration: %.f ms\t"+ - "Memory Size: %s MB\t"+ - "Max Memory Used: %d MB\t", - mc.RequestID, diffMs, math.Ceil(diffMs), mc.MemSize, mc.MaxMem)) -} - -type invokeResponse struct { - Payload []byte - Error *lambdaError -} - -type replaceWriter struct { - writer io.Writer - old []byte - new []byte -} - -func (r *replaceWriter) Write(p []byte) (n int, err error) { - return r.writer.Write(bytes.ReplaceAll(p, r.old, r.new)) -} diff --git a/runtimes/provided.al2-x86_64/run/publish.sh b/runtimes/provided.al2-x86_64/run/publish.sh deleted file mode 100755 index d75dcddc..00000000 --- a/runtimes/provided.al2-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:provided.al2" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/pull-all-images.sh b/runtimes/pull-all-images.sh deleted file mode 100755 index 8412b106..00000000 --- a/runtimes/pull-all-images.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail -export DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")") - -for runtime in $($DIR/get-all-runtimes.sh); do - docker pull mlupin/docker-lambda:${runtime}-x86_64 - docker pull mlupin/docker-lambda:${runtime}-arm64 - docker pull mlupin/docker-lambda:${runtime}-build-x86_64 - docker pull mlupin/docker-lambda:${runtime}-build-arm64 -done diff --git a/runtimes/python3.10-arm64/build/Dockerfile b/runtimes/python3.10-arm64/build/Dockerfile deleted file mode 100644 index 7ffb9ddf..00000000 --- a/runtimes/python3.10-arm64/build/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/docker-lambda:python3.10-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.10 \ - AWS_EXECUTION_ARCH=arm64 \ - PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ - PIPX_BIN_DIR=/var/lang/bin \ - PIPX_HOME=/var/lang/pipx - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pip install -U pip setuptools wheel --no-cache-dir && \ - pip install pipx --no-cache-dir && \ - pipx install virtualenv && \ - pipx install pipenv && \ - pipx install poetry && \ - pipx install awscli && \ - pipx install aws-lambda-builders && \ - pipx install aws-sam-cli diff --git a/runtimes/python3.10-arm64/build/build.sh b/runtimes/python3.10-arm64/build/build.sh deleted file mode 100755 index 657a285f..00000000 --- a/runtimes/python3.10-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.10-build-arm64 . diff --git a/runtimes/python3.10-arm64/build/publish.sh b/runtimes/python3.10-arm64/build/publish.sh deleted file mode 100755 index 5e3c611d..00000000 --- a/runtimes/python3.10-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.10-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.10-arm64/run/Dockerfile b/runtimes/python3.10-arm64/run/Dockerfile deleted file mode 100644 index 5c90b7ea..00000000 --- a/runtimes/python3.10-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/python3.10-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.10 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/python3.10-arm64/run/build.sh b/runtimes/python3.10-arm64/run/build.sh deleted file mode 100755 index ee414126..00000000 --- a/runtimes/python3.10-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.10-arm64 . diff --git a/runtimes/python3.10-arm64/run/publish.sh b/runtimes/python3.10-arm64/run/publish.sh deleted file mode 100755 index 7cb61c7c..00000000 --- a/runtimes/python3.10-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.10" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.10-x86_64/build/Dockerfile b/runtimes/python3.10-x86_64/build/Dockerfile deleted file mode 100644 index b45e07ad..00000000 --- a/runtimes/python3.10-x86_64/build/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/docker-lambda:python3.10-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.10 \ - AWS_EXECUTION_ARCH=x86_64 \ - PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ - PIPX_BIN_DIR=/var/lang/bin \ - PIPX_HOME=/var/lang/pipx - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pip install -U pip setuptools wheel --no-cache-dir && \ - pip install pipx --no-cache-dir && \ - pipx install virtualenv && \ - pipx install pipenv && \ - pipx install poetry && \ - pipx install awscli && \ - pipx install aws-lambda-builders && \ - pipx install aws-sam-cli diff --git a/runtimes/python3.10-x86_64/build/build.sh b/runtimes/python3.10-x86_64/build/build.sh deleted file mode 100755 index f05f3740..00000000 --- a/runtimes/python3.10-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.10-build-x86_64 . diff --git a/runtimes/python3.10-x86_64/build/publish.sh b/runtimes/python3.10-x86_64/build/publish.sh deleted file mode 100755 index a7a15c44..00000000 --- a/runtimes/python3.10-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.10-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.10-x86_64/run/Dockerfile b/runtimes/python3.10-x86_64/run/Dockerfile deleted file mode 100644 index a7363d61..00000000 --- a/runtimes/python3.10-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/python3.10-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.10 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/python3.10-x86_64/run/build.sh b/runtimes/python3.10-x86_64/run/build.sh deleted file mode 100755 index 4cbb4e03..00000000 --- a/runtimes/python3.10-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.10-x86_64 . diff --git a/runtimes/python3.10-x86_64/run/publish.sh b/runtimes/python3.10-x86_64/run/publish.sh deleted file mode 100755 index b562f558..00000000 --- a/runtimes/python3.10-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.10" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.11-arm64/build/Dockerfile b/runtimes/python3.11-arm64/build/Dockerfile deleted file mode 100644 index 704e83b3..00000000 --- a/runtimes/python3.11-arm64/build/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/docker-lambda:python3.11-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.11 \ - AWS_EXECUTION_ARCH=arm64 \ - PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ - PIPX_BIN_DIR=/var/lang/bin \ - PIPX_HOME=/var/lang/pipx - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pip install -U pip setuptools wheel --no-cache-dir && \ - pip install pipx --no-cache-dir && \ - pipx install virtualenv && \ - pipx install pipenv && \ - pipx install poetry && \ - pipx install awscli && \ - pipx install aws-lambda-builders && \ - pipx install aws-sam-cli diff --git a/runtimes/python3.11-arm64/build/build.sh b/runtimes/python3.11-arm64/build/build.sh deleted file mode 100755 index 5f8a474a..00000000 --- a/runtimes/python3.11-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.11-build-arm64 . diff --git a/runtimes/python3.11-arm64/build/publish.sh b/runtimes/python3.11-arm64/build/publish.sh deleted file mode 100755 index d103b4e7..00000000 --- a/runtimes/python3.11-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.11-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.11-arm64/run/Dockerfile b/runtimes/python3.11-arm64/run/Dockerfile deleted file mode 100644 index f4138ba2..00000000 --- a/runtimes/python3.11-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/python3.11-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.11 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/python3.11-arm64/run/build.sh b/runtimes/python3.11-arm64/run/build.sh deleted file mode 100755 index e723545d..00000000 --- a/runtimes/python3.11-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --no-cache --squash -t mlupin/docker-lambda:python3.11-arm64 . diff --git a/runtimes/python3.11-arm64/run/publish.sh b/runtimes/python3.11-arm64/run/publish.sh deleted file mode 100755 index d911010f..00000000 --- a/runtimes/python3.11-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.11" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.11-x86_64/build/Dockerfile b/runtimes/python3.11-x86_64/build/Dockerfile deleted file mode 100644 index 42336559..00000000 --- a/runtimes/python3.11-x86_64/build/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/docker-lambda:python3.11-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.11 \ - AWS_EXECUTION_ARCH=x86_64 \ - PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ - PIPX_BIN_DIR=/var/lang/bin \ - PIPX_HOME=/var/lang/pipx - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pip install -U pip setuptools wheel --no-cache-dir && \ - pip install pipx --no-cache-dir && \ - pipx install virtualenv && \ - pipx install pipenv && \ - pipx install poetry && \ - pipx install awscli && \ - pipx install aws-lambda-builders && \ - pipx install aws-sam-cli diff --git a/runtimes/python3.11-x86_64/build/build.sh b/runtimes/python3.11-x86_64/build/build.sh deleted file mode 100755 index 0aa68348..00000000 --- a/runtimes/python3.11-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.11-build-x86_64 . diff --git a/runtimes/python3.11-x86_64/build/publish.sh b/runtimes/python3.11-x86_64/build/publish.sh deleted file mode 100755 index 77211bb2..00000000 --- a/runtimes/python3.11-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.11-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.11-x86_64/run/Dockerfile b/runtimes/python3.11-x86_64/run/Dockerfile deleted file mode 100644 index c7c31e16..00000000 --- a/runtimes/python3.11-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/python3.11-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.11 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/python3.11-x86_64/run/build.sh b/runtimes/python3.11-x86_64/run/build.sh deleted file mode 100755 index 94abdbce..00000000 --- a/runtimes/python3.11-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.11-x86_64 . diff --git a/runtimes/python3.11-x86_64/run/publish.sh b/runtimes/python3.11-x86_64/run/publish.sh deleted file mode 100755 index e1002d23..00000000 --- a/runtimes/python3.11-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.11" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.8-arm64/build/Dockerfile b/runtimes/python3.8-arm64/build/Dockerfile deleted file mode 100644 index 4333bab0..00000000 --- a/runtimes/python3.8-arm64/build/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/docker-lambda:python3.8-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.8 \ - AWS_EXECUTION_ARCH=arm64 \ - PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ - PIPX_BIN_DIR=/var/lang/bin \ - PIPX_HOME=/var/lang/pipx - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pip install -U pip setuptools wheel --no-cache-dir && \ - pip install pipx --no-cache-dir && \ - pipx install virtualenv && \ - pipx install pipenv && \ - pipx install poetry && \ - pipx install awscli && \ - pipx install aws-lambda-builders && \ - pipx install aws-sam-cli diff --git a/runtimes/python3.8-arm64/build/build.sh b/runtimes/python3.8-arm64/build/build.sh deleted file mode 100755 index aef9e980..00000000 --- a/runtimes/python3.8-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.8-build-arm64 . diff --git a/runtimes/python3.8-arm64/build/publish.sh b/runtimes/python3.8-arm64/build/publish.sh deleted file mode 100755 index 3c5827fe..00000000 --- a/runtimes/python3.8-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.8-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.8-arm64/run/Dockerfile b/runtimes/python3.8-arm64/run/Dockerfile deleted file mode 100644 index 06204866..00000000 --- a/runtimes/python3.8-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/python3.8-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.8 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/python3.8-arm64/run/build.sh b/runtimes/python3.8-arm64/run/build.sh deleted file mode 100755 index e98ebc7a..00000000 --- a/runtimes/python3.8-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.8-arm64 . diff --git a/runtimes/python3.8-arm64/run/publish.sh b/runtimes/python3.8-arm64/run/publish.sh deleted file mode 100755 index 64f39b10..00000000 --- a/runtimes/python3.8-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.8" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.8-x86_64/build/Dockerfile b/runtimes/python3.8-x86_64/build/Dockerfile deleted file mode 100644 index 8f0c8898..00000000 --- a/runtimes/python3.8-x86_64/build/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/docker-lambda:python3.8-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.8 \ - AWS_EXECUTION_ARCH=x86_64 \ - PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ - PIPX_BIN_DIR=/var/lang/bin \ - PIPX_HOME=/var/lang/pipx - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pip install -U pip setuptools wheel --no-cache-dir && \ - pip install pipx --no-cache-dir && \ - pipx install virtualenv && \ - pipx install pipenv && \ - pipx install poetry && \ - pipx install awscli && \ - pipx install aws-lambda-builders && \ - pipx install aws-sam-cli diff --git a/runtimes/python3.8-x86_64/build/build.sh b/runtimes/python3.8-x86_64/build/build.sh deleted file mode 100755 index 8ee04110..00000000 --- a/runtimes/python3.8-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.8-build-x86_64 . diff --git a/runtimes/python3.8-x86_64/build/publish.sh b/runtimes/python3.8-x86_64/build/publish.sh deleted file mode 100755 index db45d943..00000000 --- a/runtimes/python3.8-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.8-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.8-x86_64/run/Dockerfile b/runtimes/python3.8-x86_64/run/Dockerfile deleted file mode 100644 index 957af5e9..00000000 --- a/runtimes/python3.8-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/python3.8-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.8 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/python3.8-x86_64/run/build.sh b/runtimes/python3.8-x86_64/run/build.sh deleted file mode 100755 index 908e49c6..00000000 --- a/runtimes/python3.8-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.8-x86_64 . diff --git a/runtimes/python3.8-x86_64/run/publish.sh b/runtimes/python3.8-x86_64/run/publish.sh deleted file mode 100755 index 1d59043c..00000000 --- a/runtimes/python3.8-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.8" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.9-arm64/build/Dockerfile b/runtimes/python3.9-arm64/build/Dockerfile deleted file mode 100644 index fe485f44..00000000 --- a/runtimes/python3.9-arm64/build/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/docker-lambda:python3.9-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.9 \ - AWS_EXECUTION_ARCH=arm64 \ - PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ - PIPX_BIN_DIR=/var/lang/bin \ - PIPX_HOME=/var/lang/pipx - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pip install -U pip setuptools wheel --no-cache-dir && \ - pip install pipx --no-cache-dir && \ - pipx install virtualenv && \ - pipx install pipenv && \ - pipx install poetry && \ - pipx install awscli && \ - pipx install aws-lambda-builders && \ - pipx install aws-sam-cli diff --git a/runtimes/python3.9-arm64/build/build.sh b/runtimes/python3.9-arm64/build/build.sh deleted file mode 100755 index 12cbe92c..00000000 --- a/runtimes/python3.9-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.9-build-arm64 . diff --git a/runtimes/python3.9-arm64/build/publish.sh b/runtimes/python3.9-arm64/build/publish.sh deleted file mode 100755 index ca1d89fc..00000000 --- a/runtimes/python3.9-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.9-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.9-arm64/run/Dockerfile b/runtimes/python3.9-arm64/run/Dockerfile deleted file mode 100644 index 2c69ea09..00000000 --- a/runtimes/python3.9-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/python3.9-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.9 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/python3.9-arm64/run/build.sh b/runtimes/python3.9-arm64/run/build.sh deleted file mode 100755 index 2665808b..00000000 --- a/runtimes/python3.9-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.9-arm64 . diff --git a/runtimes/python3.9-arm64/run/publish.sh b/runtimes/python3.9-arm64/run/publish.sh deleted file mode 100755 index eab3ea7f..00000000 --- a/runtimes/python3.9-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.9" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.9-x86_64/build/Dockerfile b/runtimes/python3.9-x86_64/build/Dockerfile deleted file mode 100644 index 81034681..00000000 --- a/runtimes/python3.9-x86_64/build/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mlupin/docker-lambda:python3.9-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.9 \ - AWS_EXECUTION_ARCH=x86_64 \ - PKG_CONFIG_PATH=/var/lang/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig \ - PIPX_BIN_DIR=/var/lang/bin \ - PIPX_HOME=/var/lang/pipx - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pip install -U pip setuptools wheel --no-cache-dir && \ - pip install pipx --no-cache-dir && \ - pipx install virtualenv && \ - pipx install pipenv && \ - pipx install poetry && \ - pipx install awscli && \ - pipx install aws-lambda-builders && \ - pipx install aws-sam-cli diff --git a/runtimes/python3.9-x86_64/build/build.sh b/runtimes/python3.9-x86_64/build/build.sh deleted file mode 100755 index 0cdb1e0b..00000000 --- a/runtimes/python3.9-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.9-build-x86_64 . diff --git a/runtimes/python3.9-x86_64/build/publish.sh b/runtimes/python3.9-x86_64/build/publish.sh deleted file mode 100755 index 01d0650e..00000000 --- a/runtimes/python3.9-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.9-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/python3.9-x86_64/run/Dockerfile b/runtimes/python3.9-x86_64/run/Dockerfile deleted file mode 100644 index 74f9518a..00000000 --- a/runtimes/python3.9-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/python3.9-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_python3.9 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/python3.9-x86_64/run/build.sh b/runtimes/python3.9-x86_64/run/build.sh deleted file mode 100755 index a1496b54..00000000 --- a/runtimes/python3.9-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:python3.9-x86_64 . diff --git a/runtimes/python3.9-x86_64/run/publish.sh b/runtimes/python3.9-x86_64/run/publish.sh deleted file mode 100755 index c0040cc3..00000000 --- a/runtimes/python3.9-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:python3.9" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/ruby2.7-arm64/build/Dockerfile b/runtimes/ruby2.7-arm64/build/Dockerfile deleted file mode 100644 index 7e2d27c6..00000000 --- a/runtimes/ruby2.7-arm64/build/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM mlupin/docker-lambda:ruby2.7-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_ruby2.7 \ - AWS_EXECUTION_ARCH=arm64 \ - GEM_HOME=/var/runtime \ - GEM_PATH=/var/task/vendor/bundle/ruby/2.7.0:/opt/ruby/gems/2.7.0:/var/lang/lib/ruby/gems/2.7.0 \ - RUBYLIB=/var/task:/var/runtime/lib:/opt/ruby/lib \ - BUNDLE_SILENCE_ROOT_WARNING=1 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 && \ - gem update --system --no-document && \ - gem install --no-document bundler -v '~> 2.1' diff --git a/runtimes/ruby2.7-arm64/build/build.sh b/runtimes/ruby2.7-arm64/build/build.sh deleted file mode 100755 index 48f89c26..00000000 --- a/runtimes/ruby2.7-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:ruby2.7-build-arm64 . diff --git a/runtimes/ruby2.7-arm64/build/publish.sh b/runtimes/ruby2.7-arm64/build/publish.sh deleted file mode 100755 index bfd7f886..00000000 --- a/runtimes/ruby2.7-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:ruby2.7-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/ruby2.7-arm64/run/Dockerfile b/runtimes/ruby2.7-arm64/run/Dockerfile deleted file mode 100644 index 90225ebd..00000000 --- a/runtimes/ruby2.7-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/ruby2.7-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_ruby2.7 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/ruby2.7-arm64/run/build.sh b/runtimes/ruby2.7-arm64/run/build.sh deleted file mode 100755 index 69755c4b..00000000 --- a/runtimes/ruby2.7-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:ruby2.7-arm64 . diff --git a/runtimes/ruby2.7-arm64/run/publish.sh b/runtimes/ruby2.7-arm64/run/publish.sh deleted file mode 100755 index b14ac6e2..00000000 --- a/runtimes/ruby2.7-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:ruby2.7" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/ruby2.7-x86_64/build/Dockerfile b/runtimes/ruby2.7-x86_64/build/Dockerfile deleted file mode 100644 index 1062aefa..00000000 --- a/runtimes/ruby2.7-x86_64/build/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM mlupin/docker-lambda:ruby2.7-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_ruby2.7 \ - AWS_EXECUTION_ARCH=x86_64 \ - GEM_HOME=/var/runtime \ - GEM_PATH=/var/task/vendor/bundle/ruby/2.7.0:/opt/ruby/gems/2.7.0:/var/lang/lib/ruby/gems/2.7.0 \ - RUBYLIB=/var/task:/var/runtime/lib:/opt/ruby/lib \ - BUNDLE_SILENCE_ROOT_WARNING=1 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 && \ - gem update --system --no-document && \ - gem install --no-document bundler -v '~> 2.1' diff --git a/runtimes/ruby2.7-x86_64/build/build.sh b/runtimes/ruby2.7-x86_64/build/build.sh deleted file mode 100755 index 9e26dae8..00000000 --- a/runtimes/ruby2.7-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:ruby2.7-build-x86_64 . diff --git a/runtimes/ruby2.7-x86_64/build/publish.sh b/runtimes/ruby2.7-x86_64/build/publish.sh deleted file mode 100755 index bf882b01..00000000 --- a/runtimes/ruby2.7-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:ruby2.7-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/ruby2.7-x86_64/run/Dockerfile b/runtimes/ruby2.7-x86_64/run/Dockerfile deleted file mode 100644 index af636be1..00000000 --- a/runtimes/ruby2.7-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/ruby2.7-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_ruby2.7 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/ruby2.7-x86_64/run/build.sh b/runtimes/ruby2.7-x86_64/run/build.sh deleted file mode 100755 index f94ebb2a..00000000 --- a/runtimes/ruby2.7-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:ruby2.7-x86_64 . diff --git a/runtimes/ruby2.7-x86_64/run/publish.sh b/runtimes/ruby2.7-x86_64/run/publish.sh deleted file mode 100755 index 206ed1b7..00000000 --- a/runtimes/ruby2.7-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:ruby2.7" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/ruby3.2-arm64/build/Dockerfile b/runtimes/ruby3.2-arm64/build/Dockerfile deleted file mode 100644 index c24d79b5..00000000 --- a/runtimes/ruby3.2-arm64/build/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM mlupin/docker-lambda:ruby3.2-arm64 - -FROM mlupin/docker-lambda:build-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_ruby3.2 \ - AWS_EXECUTION_ARCH=arm64 \ - GEM_HOME=/var/runtime \ - GEM_PATH=/var/task/vendor/bundle/ruby/3.2.0:/opt/ruby/gems/3.2.0:/var/lang/lib/ruby/gems/3.2.0 \ - RUBYLIB=/var/task:/var/runtime/lib:/opt/ruby/lib \ - BUNDLE_SILENCE_ROOT_WARNING=1 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 && \ - gem update --system --no-document && \ - gem install --no-document bundler -v '~> 2.1' diff --git a/runtimes/ruby3.2-arm64/build/build.sh b/runtimes/ruby3.2-arm64/build/build.sh deleted file mode 100755 index d5cb9b27..00000000 --- a/runtimes/ruby3.2-arm64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:ruby3.2-build-arm64 . diff --git a/runtimes/ruby3.2-arm64/build/publish.sh b/runtimes/ruby3.2-arm64/build/publish.sh deleted file mode 100755 index cbe4ef96..00000000 --- a/runtimes/ruby3.2-arm64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:ruby3.2-build" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/ruby3.2-arm64/run/Dockerfile b/runtimes/ruby3.2-arm64/run/Dockerfile deleted file mode 100644 index 31a34b25..00000000 --- a/runtimes/ruby3.2-arm64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM arm64v8/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/ruby3.2-arm64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-arm64 -FROM mlupin/docker-lambda:base-arm64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_ruby3.2 \ - AWS_EXECUTION_ARCH=arm64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/ruby3.2-arm64/run/build.sh b/runtimes/ruby3.2-arm64/run/build.sh deleted file mode 100755 index f587f6c1..00000000 --- a/runtimes/ruby3.2-arm64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:ruby3.2-arm64 . diff --git a/runtimes/ruby3.2-arm64/run/publish.sh b/runtimes/ruby3.2-arm64/run/publish.sh deleted file mode 100755 index 88484b8f..00000000 --- a/runtimes/ruby3.2-arm64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:ruby3.2" -export BASE_IMAGE="${NO_ARCH_TAG}-arm64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/ruby3.2-x86_64/build/Dockerfile b/runtimes/ruby3.2-x86_64/build/Dockerfile deleted file mode 100644 index 9f321842..00000000 --- a/runtimes/ruby3.2-x86_64/build/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM mlupin/docker-lambda:ruby3.2-x86_64 - -FROM mlupin/docker-lambda:build-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_ruby3.2 \ - AWS_EXECUTION_ARCH=x86_64 \ - GEM_HOME=/var/runtime \ - GEM_PATH=/var/task/vendor/bundle/ruby/3.2.0:/opt/ruby/gems/3.2.0:/var/lang/lib/ruby/gems/3.2.0 \ - RUBYLIB=/var/task:/var/runtime/lib:/opt/ruby/lib \ - BUNDLE_SILENCE_ROOT_WARNING=1 - -COPY --from=0 /var/runtime /var/runtime -COPY --from=0 /var/lang /var/lang -COPY --from=0 /var/rapid /var/rapid - -# Add these as a separate layer as they get updated frequently -RUN pipx install awscli==1.* && \ - pipx install aws-lambda-builders==1.2.0 && \ - pipx install aws-sam-cli==1.15.0 && \ - gem update --system --no-document && \ - gem install --no-document bundler -v '~> 2.1' diff --git a/runtimes/ruby3.2-x86_64/build/build.sh b/runtimes/ruby3.2-x86_64/build/build.sh deleted file mode 100755 index 24bf8e64..00000000 --- a/runtimes/ruby3.2-x86_64/build/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:ruby3.2-build-x86_64 . diff --git a/runtimes/ruby3.2-x86_64/build/publish.sh b/runtimes/ruby3.2-x86_64/build/publish.sh deleted file mode 100755 index 1706b4d1..00000000 --- a/runtimes/ruby3.2-x86_64/build/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:ruby3.2-build" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE} diff --git a/runtimes/ruby3.2-x86_64/run/Dockerfile b/runtimes/ruby3.2-x86_64/run/Dockerfile deleted file mode 100644 index 49f5e1d5..00000000 --- a/runtimes/ruby3.2-x86_64/run/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM amd64/amazonlinux:2 - -RUN yum install -y tar gzip - -RUN curl https://docker-lambda.s3.amazonaws.com/fs/ruby3.2-x86_64.tgz | tar -zx -C /opt - -FROM mlupin/docker-lambda:provided.al2-x86_64 -FROM mlupin/docker-lambda:base-x86_64 - -ENV PATH=/var/lang/bin:$PATH \ - LD_LIBRARY_PATH=/var/lang/lib:$LD_LIBRARY_PATH \ - AWS_EXECUTION_ENV=AWS_Lambda_ruby3.2 \ - AWS_EXECUTION_ARCH=x86_64 - -COPY --from=0 /opt/* /var/ - -COPY --from=1 /var/runtime/init /var/rapid/init - -USER sbx_user1051 - -ENTRYPOINT ["/var/rapid/init", "--bootstrap", "/var/runtime/bootstrap", "--enable-msg-logs"] diff --git a/runtimes/ruby3.2-x86_64/run/build.sh b/runtimes/ruby3.2-x86_64/run/build.sh deleted file mode 100755 index 78fbaf92..00000000 --- a/runtimes/ruby3.2-x86_64/run/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -docker build --progress plain --squash -t mlupin/docker-lambda:ruby3.2-x86_64 . diff --git a/runtimes/ruby3.2-x86_64/run/publish.sh b/runtimes/ruby3.2-x86_64/run/publish.sh deleted file mode 100755 index 9a746904..00000000 --- a/runtimes/ruby3.2-x86_64/run/publish.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -export PUBLISH_DATE=$(date "+%Y%m%d%H%M") -export NO_ARCH_TAG="mlupin/docker-lambda:ruby3.2" -export BASE_IMAGE="${NO_ARCH_TAG}-x86_64" - -docker tag ${BASE_IMAGE} ${BASE_IMAGE}-${PUBLISH_DATE} -docker push ${BASE_IMAGE} -docker push ${BASE_IMAGE}-${PUBLISH_DATE}