Jest-dynamoDB连接在Docker容器内部被拒绝

时间:2019-09-24 13:15:16

标签: docker testing amazon-dynamodb jestjs amazon-dynamodb-local

我有一套用Jest为dynamoDB编写的测试,它们使用dynamodb本地实例,如here所述,使用this dependency。我使用自定义构建的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

我先yarn install依赖所有,然后yarn test,经过很长一段时间后,它将输出以下内容: Error

这是我使用的命令: docker run -it --rm -p 8000:8000 -v $(pwd):/data -w /data aws-cli-java8-v15:latest

这些测试在我自己的机器上完全可以正常运行,但是无论我使用哪个项目或我的Dockerfile连接中包含的项目总是被丢弃。

1 个答案:

答案 0 :(得分:0)

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