Имея приложение Dockerized Spring-Boot и базу данных PostgreSQL, как я могу выдать cmd
mvn liquibase:rollback -Dliquibase.rollbackCount=4 -Dliquibase.password=*********
или любой другой эквивалент для базы данных?Обратите внимание, что все мои изменения находятся в папке ресурсов проекта Spring-Boot, и я могу запустить вышеуказанную CMD из корневого каталога проекта.
Это dockerfile из Spring-Boot app :
FROM openjdk:8-jre-alpine
ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
JAVA_OPTS=""
CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.war
EXPOSE 8080 5701/udp
ADD *.war /app.war
и эта служба PostgreSQL в docker-compose:
app-postgresql:
image: postgres:9.6.5
mem_limit: 256m
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PWD}
Я могу войти в контейнер приложения, но файл журнала изменений или maven или liquibase не установлены, поскольку все упаковано в app.war
Update
Я думал сделать резервную копию докеризованногоDB, восстановите его локально, затем выполните команду отката из корня проекта.В конце я бы сделал резервную копию локальной БД и восстановил ее в контейнере.
Вероятно, это самый простой способ.Однако я надеюсь, что существует альтернативный путь без необходимости перемещения и восстановления БД.