#docker #amazon-dynamodb #amazon-dynamodb-local
#docker #amazon-dynamodb #amazon-dynamodb-local
Вопрос:
Согласно документам, существует 2 флага, которые влияют на запуск dynamodb-local
-inMemory
-> сохраняет все данные только в ОЗУ, когда служба завершается — все данные удаляются
-sharedDB
-> позволяет записывать все логины в один и тот же общий файл
нет переключений -> каждый логин с учетными данными сохраняет данные в другом файле — это поведение по умолчанию
Однако, если вы посмотрите в docker.hub вы увидите, что поведение по умолчанию при запуске dynamodb-local в docker — с -inMemory
флагом. но я этого не хочу, мне нужно реальное поведение по умолчанию. Как я могу его переопределить?
Ответ №1:
Ну, было очень сложно найти его, но это очень простое решение.
Согласно этому замечательному сообщению, мы можем легко переопределить [CMD]
часть изображения, извлеченного из docker.
Нам просто нужно добавить аргументы после запуска docker. Это команда, которую я использовал:
docker run -p 8000:8000 --name local-dynamodb amazon/dynamodb-local -jar DynamoDBLocal.jar
-p
предназначен для определения порта для отображения, чтобы ваше приложение могло связаться с dynamodb-local на порту 8000
--name
предназначен для присвоения изображению читаемого имени
все, что после amazon/dynamodb-local
, является переопределяющей частью, предопределенной точкой входа JAVA
, поэтому нам просто нужно добавить -jar
переключатель, указать имя файла для запуска и опустить этот злой -inMemory
переключатель
Можно добавить флаг -sharedDb
, чтобы все учетные данные подключались к одной и той же БД, в противном случае — по умолчанию используется другой файл для каждого набора учетных данных (включая регион!)
Всем удачи! и счастливого кодирования