0

我有一套用 Jest 为 dynamoDB 编写的测试,这些测试使用 dynamodb-local 实例,如此处所述使用此依赖项。我使用了一个定制的 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,在很长一段时间后它会输出这个: 错误

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

这些测试在我自己的机器上运行良好,但无论我使用什么项目或我在 Dockerfile 连接中包含什么,总是会被丢弃。

4

1 回答 1

0

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

于 2019-10-01T15:06:41.860 回答