Files
abstracto/python/deployment/installer/config-deployment/Dockerfile

59 lines
2.2 KiB
Docker

FROM ubuntu as base
MAINTAINER Sheldan
ENV DEBIAN_FRONTEND=noninteractive
ARG liquibase_version=4.26.0
ARG postgres_driver_version=42.7.1
# Install prerequisities for Ansible
RUN apt-get update \
&& apt-get install -y unzip wget \
&& rm -rf /var/lib/apt/lists/
# Install liquibase
RUN mkdir -p /liqiubase \
&& wget -nv https://github.com/liquibase/liquibase/releases/download/v${liquibase_version}/liquibase-${liquibase_version}.zip -O /tmp/liquibase.zip \
&& unzip /tmp/liquibase.zip -d /liquibase \
# Split copying to workaround upload limits (increases amount of layers)
&& mv /liquibase/internal/lib/snowflake-jdbc.jar /liquibase-internal-lib-snowflake-jdbc.jar \
&& mv /liquibase/internal/lib /liquibase-internal-lib
RUN mkdir -p /java \
&& wget -nv https://corretto.aws/downloads/latest/amazon-corretto-17-x64-linux-jdk.tar.gz -O /tmp/java.tar.gz \
&& tar -xf /tmp/java.tar.gz --strip-components=1 -C /java \
&& mv /java/lib/server /java-lib-server \
&& mv /java/lib/src.zip /java-lib-src.zip \
&& mv /java/lib/ /java-lib
# Install postgres driver
RUN mkdir -p /postgres \
&& wget -nv https://jdbc.postgresql.org/download/postgresql-${postgres_driver_version}.jar -O /postgres/driver.jar
# Install ansible and required libraries
FROM python:3.12.2-slim-bullseye as runtime
ARG sql_alchemy_version=2.0.27
ARG jinja_version=3.1.3
ARG psycopg2_version=2.9.9
# required for psycopg2
RUN apt-get update && apt-get install -y \
libpq-dev \
gcc \
g++ \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN pip3 install --no-cache-dir psycopg2-binary==${psycopg2_version} SQLAlchemy==${sql_alchemy_version} jinja2==${jinja_version}
COPY --from=base /liquibase /liquibase
COPY --from=base /liquibase-internal-lib /liquibase/internal/lib
COPY --from=base /liquibase-internal-lib-snowflake-jdbc.jar /liquibase/internal/lib/snowflake-jdbc.jar
COPY --from=base /postgres /postgres
COPY --from=base /java /java
COPY --from=base /java-lib /java/lib
COPY --from=base /java-lib-server /java/lib/server
COPY --from=base /java-lib-src.zip /java/lib/src.zip
ENV JAVA_HOME=/java/jre
ADD python /python
ADD wrapper /
ENV ROOT_PATH=/liquibase
ENV POSTGRES_DRIVER=/postgres/driver.jar
ENTRYPOINT [ "/bin/sh", "/deploy.sh" ]