我使用https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html进行了 dynamodb 的本地设置
我可以使用以下命令启动实例java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb,但是当我尝试执行其他操作时,它会出现以下错误。
2021 年 3 月 15 日下午 2:10:28 com.almworks.sqlite4java.Internal 日志警告:[sqlite] 无法打开 DB[15]:com.almworks.sqlite4java.SQLiteException:[-91] 无法加载库:java.lang。 UnsatisfiedLinkError:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:dlopen(/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib,1):找不到合适的图像。确实找到:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构2021 年 15 月 2:10:28 PM com.almworks.sqlite4java.Internal 日志严重:[sqlite] SQLiteQueue[shared-local-instance.db]:运行作业队列时出错 com.almworks.sqlite4java.SQLiteException:[-91] 不能加载库:java.lang.UnsatisfiedLinkError:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:dlopen(/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib,1):没有合适的找到图像。确实找到:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构 /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:97) 在 com.almworks.sqlite4java.SQLiteConnection.open0(SQLiteConnection.java:1441) 在 com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:282)在 com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:293) 在 com.almworks.sqlite4java.SQLiteQueue.openConnection(SQLiteQueue.java:464) 在 com.almworks.sqlite4java.SQLiteQueue.queueFunction(SQLiteQueue.java:641) )在 com.almworks.sqlite4java.SQLiteQueue.runQueue(SQLiteQueue.java:623) 在 com.almworks.sqlite4java.SQLiteQueue.access$000(SQLiteQueue.java:77) 在 com.almworks.sqlite4java.SQLiteQueue$1.run(SQLiteQueue. java:205) 在 java.base/java.lang.Thread.run(未知来源) 引起: java.lang.UnsatisfiedLinkError: /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: dlopen(/Users /ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib, 1):找不到合适的图像。确实找到:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构 /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构java.base/java.lang.ClassLoader$NativeLibrary.load0(本机方法) 在 java.base/java.lang.ClassLoader$NativeLibrary.load(未知来源) 在 java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(来源未知)位于 java.base/java.lang.ClassLoader。
此问题与新的 M1 Apple Silicon 架构有关吗?有什么解决方法吗?
我正在使用 docker compose 创建两个容器,一个用于 dynamodb local,一个用于 Nodejs Express 应用程序。
docker-compose.dev.yml
version: '3'
services:
dynamodb-local:
command: "-jar DynamoDBLocal.jar -sharedDb -optimizeDbBeforeStartup -dbPath ./data"
image: "amazon/dynamodb-local:latest"
container_name: dynamodb-local
ports:
- "8000:8000"
volumes:
- "./docker/dynamodb:/home/dynamodblocal/data"
working_dir: /home/dynamodblocal
networks:
- dynamodb-network
node-app:
depends_on:
- dynamodb-local
container_name: dev-nodejs-backend
ports:
- '3000:3000'
volumes:
- .:/usr/src/node-app
environment:
AWS_ACCESS_KEY_ID: 'DUMMYIDEXAMPLE'
AWS_SECRET_ACCESS_KEY: 'DUMMYEXAMPLEKEY'
networks:
- dynamodb-network
command: yarn dev -L
networks:
dynamodb-network:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM node:alpine
RUN mkdir -p /usr/src/node-app && chown -R node:node /usr/src/node-app
WORKDIR /usr/src/node-app
COPY package.json …Run Code Online (Sandbox Code Playgroud) 我的docker compose文件有两个容器,看起来像这样
version: '3'
services:
dynamodb:
image: amazon/dynamodb-local
ports:
- '8000:8000'
networks:
- testnetwork
audit-server:
image: audit-dynamo
environment:
DYNAMO_URL: 'http://0.0.0.0:8000'
command: node app.js
ports:
- '3000:3000'
depends_on:
- dynamodb
# restart: always
networks:
- testnetwork
networks:
testnetwork:
Run Code Online (Sandbox Code Playgroud)
我的目标是将本地数据装载到一定数量。目前正在丢失数据docker-compose down