Jest dynamoDB连接在docker容器内被拒绝

Jest dynamoDB连接在docker容器内被拒绝,docker,testing,amazon-dynamodb,jestjs,amazon-dynamodb-local,Docker,Testing,Amazon Dynamodb,Jestjs,Amazon Dynamodb Local,我有一套为dynamoDB编写的测试,它们使用dynamoDB本地实例,如使用所述。我使用一个定制的Docker映像来构建一个容器,在其中执行测试。 这是Dockerfile FROM openjdk:8-jre-alpine RUN apk -v --no-cache add \ curl \ build-base \ groff \ jq \ less \ py-pip \ python openssl \ python3 \

我有一套为dynamoDB编写的测试,它们使用dynamoDB本地实例,如使用所述。我使用一个定制的Docker映像来构建一个容器,在其中执行测试。 这是Dockerfile

FROM openjdk:8-jre-alpine

RUN apk -v --no-cache add \
    curl \
    build-base \
    groff \
    jq \
    less \
    py-pip \
    python openssl \
    python3 \
    python3-dev \
    yarn \
    && \
    pip3 install --upgrade pip awscli boto3 aws-sam-cli

EXPOSE 8000
纱线安装
我的所有依赖项,然后
纱线测试
,在这一点上,经过很长时间后,它将输出以下内容:

这是I ma使用的命令:
docker run-it-rm-p 8000:8000-v$(pwd):/data-w/data aws-cli-java8-v15:最新版本


这些测试在我自己的机器上运行得很好,但无论我使用什么项目或Dockerfile连接中包含什么,都会被删除。

我解决了这个问题,结果证明它与Alpine Linux有关。因为它使用musl而不是Glibc本地dynamodb将无法启动,并且在执行后几秒钟它将崩溃,而不会输出任何错误消息。解决方案是要么在alpine上使用OracleJDK,考虑到他们的新许可证,这已经够难了,要么使用任何其他确实使用glibc和OpenJDK的操作系统。或者您可以尝试在Alpine上安装glibc并尝试将其链接到OpenJDK,但这不是一个非常好的主意