Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

node:16-alpine with aws-lambda-ric docker build fails #90

Open
expertneo opened this issue Nov 23, 2023 · 5 comments
Open

node:16-alpine with aws-lambda-ric docker build fails #90

expertneo opened this issue Nov 23, 2023 · 5 comments

Comments

@expertneo
Copy link

Dear Experts,

I would like to draw your attention to (or seek for help about) an issue we are having right now:
Having "RUN npm i aws-lambda-ric" latest or anything down to 1.1.0 in Dockerfile would give the error below.

ARG FUNCTION_DIR="/app"

#*****************************************************************************
#  Builder Stage
#****************************************************************************/
FROM node:16-alpine3.18 AS base

# Include global arg in this stage of the build
ARG FUNCTION_DIR

# The working directory is where "npm install" created the node_modules folder.
WORKDIR ${FUNCTION_DIR}

# Install aws-lambda-cpp build dependencies. aws-lambda-cpp is used by aws-lambda-ric which is a
# node-gyp compiled dependency. Find it in package.json.
# See the Node.js example at https://github.com/aws/aws-lambda-nodejs-runtime-interface-client
RUN apk update && apk add --no-cache \
    build-base \
    libtool \
    autoconf \
    automake \
    make \
    cmake \
    libcurl \
    elfutils-dev \
    python3

# Copy dependencies
COPY package*.json ./

# Install Node.js dependencies
RUN npm ci

# Install the AWS Lambda Runtime Interface Client (RIC) that is only required within this Docker container (not in package.json on development machine).
# It helps AWS to run the Lambda function code that autoiXpert provides.
RUN npm install aws-lambda-ric

COPY src/main ./

#*****************************************************************************
#  Production Stage
#****************************************************************************/
FROM node:16-alpine3.18

# Include global arg in this stage of the build
ARG FUNCTION_DIR

# The working directory is where "npm install" created the node_modules folder.
WORKDIR ${FUNCTION_DIR}

# Update packages causing vulnerability
RUN apk update && apk upgrade --no-cache libcrypto3 libssl3

COPY --from=base app/dist ${LAMBDA_TASK_ROOT}

ENTRYPOINT ["/usr/local/bin/npx", "aws-lambda-ric"]
CMD [ "app.lambdaHandler" ]
 => [base 10/13] RUN npm ci                                                                                                                                                          318.1s
 => ERROR [base 11/13] RUN npm install aws-lambda-ric                                                                                                                                 91.8s
------
 > [base 11/13] RUN npm install aws-lambda-ric:
#16 91.71 npm ERR! code 1
#16 91.71 npm ERR! path /app/node_modules/aws-lambda-ric
#16 91.71 npm ERR! command failed
#16 91.71 npm ERR! command sh -c -- ./scripts/preinstall.sh
#16 91.71 npm ERR! libtoolize: putting auxiliary files in '.'.
#16 91.71 npm ERR! libtoolize: copying file './ltmain.sh'
#16 91.71 npm ERR! libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
#16 91.71 npm ERR! libtoolize: copying file 'm4/libtool.m4'
#16 91.71 npm ERR! libtoolize: copying file 'm4/ltoptions.m4'
#16 91.71 npm ERR! libtoolize: copying file 'm4/ltsugar.m4'
#16 91.71 npm ERR! libtoolize: copying file 'm4/ltversion.m4'
#16 91.71 npm ERR! libtoolize: copying file 'm4/lt~obsolete.m4'
#16 91.72 npm ERR! libtoolize: Remember to add 'LT_INIT' to configure.ac.
#16 91.72 npm ERR! checking whether to enable maintainer-specific portions of Makefiles... no
#16 91.72 npm ERR! checking whether make supports nested variables... yes
#16 91.72 npm ERR! checking whether to enable debug build options... no
.
.
.
.
.
#16 91.81 npm ERR! parallel-tests: installing './test-driver'
#16 91.81 npm ERR! configure: WARNING: zlib disabled
#16 91.81 npm ERR! configure: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.
#16 91.81 npm ERR! configure: WARNING: Use --with-openssl, --with-gnutls, --with-wolfssl, --with-mbedtls, --with-nss, --with-schannel, --with-secure-transport, --with-amissl, --with-bearssl or --with-rustls to address this.
#16 91.81 npm ERR! configure: WARNING: libgsasl was not found
#16 91.81 npm ERR! configure: WARNING: disabling built-in manual
#16 91.81 npm ERR! CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
#16 91.81 npm ERR!   Could NOT find Backtrace (missing: Backtrace_LIBRARY Backtrace_INCLUDE_DIR)
#16 91.81 npm ERR! Call Stack (most recent call first):
#16 91.81 npm ERR!   /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
#16 91.81 npm ERR!   /usr/share/cmake/Modules/FindBacktrace.cmake:90 (find_package_handle_standard_args)
#16 91.81 npm ERR!   CMakeLists.txt:44 (find_package)
#16 91.81
#16 91.81 npm ERR! A complete log of this run can be found in:
#16 91.81 npm ERR!     /root/.npm/_logs/2023-11-23T16_18_49_501Z-debug-0.log
------
executor failed running [/bin/sh -c npm install aws-lambda-ric]: exit code: 1

Any help would be appreciated.

Thanks and regards,
Ben

@stravito-christian
Copy link

stravito-christian commented Nov 28, 2023

The workaround mentioned in #68 (comment) worked for me.

@roshitho
Copy link

roshitho commented Dec 22, 2023

The workaround mentioned in #68 (comment) worked for me.

I tried the same but it gave me multiple errors (mainly something like below)

84.07 npm ERR! /app/node_modules/aws-lambda-ric/deps/aws-lambda-cpp-0.2.8/src/backward.h:1295:25: error: request for member 'dli_fname' in 'symbol_info', which is of non-class type 'int'
 84.07 npm ERR!  1295 |         if (symbol_info.dli_fname == argv0_) {
84.07 npm ERR!       |                         ^~~~~~~~~

Dockerfile builder stage for me looks like below:

ARG FUNCTION_DIR="/app"

#*****************************************************************************
#  Builder Stage
#****************************************************************************/
FROM node:20-alpine3.17 AS build-image

ARG FUNCTION_DIR

WORKDIR ${FUNCTION_DIR}

RUN apk update && apk add --no-cache \
    build-base \
    g++ \
    git \
    libtool \
    autoconf \
    automake \
    make \
    cmake \
    elfutils-dev \
    python3
    
RUN apk add --no-cache --update --repository=https://dl-cdn.alpinelinux.org/alpine/v3.16/main libexecinfo-dev

# Copy function code
RUN mkdir -p ${FUNCTION_DIR}
COPY . ${FUNCTION_DIR}

WORKDIR ${FUNCTION_DIR}

# Install Node.js dependencies
RUN npm install

RUN npm install aws-lambda-ric

@1xtr
Copy link

1xtr commented Jan 19, 2024

I have same issue with
Could NOT find Backtrace (missing: Backtrace_LIBRARY Backtrace_INCLUDE_DIR)

@mjperrone
Copy link

mjperrone commented Feb 28, 2024

This is affecting me as well, and the linked workaround is not working for me.. @andclt @briensea is this something you can help with or pull in the right parties?

Alpine is explicitly called out as being supported.

@ctrmmb
Copy link

ctrmmb commented Apr 4, 2024

Issue is affecting me as well.
It seems libbacktrace has been made optional from aws-lambda-cpp 0.2.9 to solve this exact issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants