Jest dynamoDB连接在docker容器内被拒绝
我有一套为dynamoDB编写的测试,它们使用dynamoDB本地实例,如使用所述。我使用一个定制的Docker映像来构建一个容器,在其中执行测试。 这是DockerfileJest 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 \
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,但这不是一个非常好的主意