Quiero crear una base de datos para autotest en kubernetes. Quiero crear una imagen (postg-my-app-v1) a partir de la imagen de postgres, agregar archivos de registro de cambios e imagen de liquibase. Cuando implemento esta imagen con helm, solo quiero especificar contenedores: postg-my-app-v1 y debería iniciar el módulo con la base de datos y crear tablas con el registro de cambios de liquibase.
Ahora creo Dockerfile como se muestra a continuación
FROM postgres ADD /changelog /liquibase/changelogNo entiendo cómo agregar liquibase a esta imagen. ¿O debo usar docker componer? o helm lifecycle postStart para liquibase?
FROM docker-proxy.tcsbank.ru/liquibase/liquibase:3.10.x AS Liquibase FROM docker-proxy.tcsbank.ru/postgres:9.6.12 AS Postgres ENV POSTGRES_DB bpm ENV POSTGRES_USER priest ENV POSTGRES_PASSWORD Bpm_123 COPY --from=Liquibase /liquibase /liquibase ENV JAVA_HOME /usr/local/openjdk-11 COPY --from=Liquibase $JAVA_HOME $JAVA_HOME ENV LIQUIBASE_CHANGELOG /liquibase/changelog/ COPY /changelog $LIQUIBASE_CHANGELOG COPY liquibase.sh /usr/local/bin/ COPY main.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/liquibase.sh && \ chmod +x /usr/local/bin/main.sh && \ ln -s /usr/local/bin/main.sh / && \ ln -s /usr/local/bin/liquibase.sh / ENTRYPOINT ["main.sh"]principal.sh
#!/bin/bash bash liquibase.sh | awk '{print "liquiBase script: " $0}' & bash docker-entrypoint.sh postgresliquibase.sh
#!/bin/bash for COUNTER in {1..120} do sleep 1s echo "check db $COUNTER times" pg_isready if [ $? -eq 0 ] then break fi done echo "try execute liquibase" bash liquibase/liquibase --url="jdbc:postgresql://localhost:5432/$POSTGRES_DB" --username=$POSTGRES_USER --password=$POSTGRES_PASSWORD --changeLogFile=/liquibase/changelog/changelog.xml update