kopia lustrzana https://github.com/kartoza/docker-postgis
Use multi-stage build
rodzic
00268d9802
commit
8c9f610e4e
|
@ -0,0 +1,16 @@
|
||||||
|
## Example environment file for docker-compose and builders
|
||||||
|
|
||||||
|
COMPOSE_PROJECT_NAME=postgis
|
||||||
|
|
||||||
|
## For build arguments
|
||||||
|
DISTRO=debian
|
||||||
|
IMAGE_VERSION=bullseye
|
||||||
|
IMAGE_VARIANT=slim
|
||||||
|
# Set GENERATE_ALL_LOCALE to empty value or 0 to build just default LOCALE: en_US.UTF-8
|
||||||
|
GENERATE_ALL_LOCALE=1
|
||||||
|
# Set the language if you need to specify LANG locale at build time
|
||||||
|
LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
POSTGRES_MAJOR_VERSION=13
|
||||||
|
POSTGIS_MAJOR_VERSION=3
|
||||||
|
POSTGIS_MINOR_RELEASE=1
|
|
@ -56,20 +56,21 @@ jobs:
|
||||||
id: docker_build_base
|
id: docker_build_base
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
context: base_build
|
context: .
|
||||||
file: base_build/Dockerfile
|
file: Dockerfile
|
||||||
push: false
|
push: false
|
||||||
load: true
|
|
||||||
tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:base-${{ matrix.distro }}-${{ matrix.imageVersion }}-${{ matrix.imageVariant }}
|
tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:base-${{ matrix.distro }}-${{ matrix.imageVersion }}-${{ matrix.imageVariant }}
|
||||||
build-args: |
|
build-args: |
|
||||||
GENERATE_ALL_LOCALE=0
|
|
||||||
DISTRO=${{ matrix.distro }}
|
DISTRO=${{ matrix.distro }}
|
||||||
IMAGE_VERSION=${{ matrix.imageVersion }}
|
IMAGE_VERSION=${{ matrix.imageVersion }}
|
||||||
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
||||||
|
GENERATE_ALL_LOCALE=0
|
||||||
|
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }}
|
||||||
|
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }}
|
||||||
|
POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }}
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
cache-from: type=local,src=/tmp/.buildx-cache
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||||
|
target: postgis-base
|
||||||
- run: docker images -a
|
|
||||||
|
|
||||||
- name: Build prod image
|
- name: Build prod image
|
||||||
id: docker_build_prod
|
id: docker_build_prod
|
||||||
|
@ -82,14 +83,15 @@ jobs:
|
||||||
tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }}
|
tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }}
|
||||||
build-args: |
|
build-args: |
|
||||||
DISTRO=${{ matrix.distro }}
|
DISTRO=${{ matrix.distro }}
|
||||||
IMAGE_OWNER=${{ secrets.DOCKERHUB_REPO }}
|
|
||||||
IMAGE_VERSION=${{ matrix.imageVersion }}
|
IMAGE_VERSION=${{ matrix.imageVersion }}
|
||||||
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
||||||
|
GENERATE_ALL_LOCALE=0
|
||||||
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }}
|
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }}
|
||||||
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }}
|
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }}
|
||||||
POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }}
|
POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }}
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
cache-from: type=local,src=/tmp/.buildx-cache
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||||
|
target: postgis-prod
|
||||||
|
|
||||||
run-scenario-tests:
|
run-scenario-tests:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -126,8 +128,8 @@ jobs:
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
buildx-${{ matrix.distro }}-${{ matrix.imageVersion }}-${{ matrix.imageVariant }}-
|
buildx-${{ matrix.distro }}-${{ matrix.imageVersion }}-${{ matrix.imageVariant }}-
|
||||||
|
|
||||||
- name: Build base image for testing
|
- name: Build image for testing
|
||||||
id: docker_build_base
|
id: docker_build_testing_image
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
|
@ -137,23 +139,14 @@ jobs:
|
||||||
tags: kartoza/postgis:manual-build
|
tags: kartoza/postgis:manual-build
|
||||||
build-args: |
|
build-args: |
|
||||||
DISTRO=${{ matrix.distro }}
|
DISTRO=${{ matrix.distro }}
|
||||||
IMAGE_OWNER=kartoza
|
|
||||||
IMAGE_VERSION=${{ matrix.imageVersion }}
|
IMAGE_VERSION=${{ matrix.imageVersion }}
|
||||||
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
||||||
|
GENERATE_ALL_LOCALE=0
|
||||||
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }}
|
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }}
|
||||||
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }}
|
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }}
|
||||||
POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }}
|
POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }}
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
target: postgis-test
|
||||||
|
|
||||||
- name: Build image for testing
|
|
||||||
id: docker_build_testing_image
|
|
||||||
uses: docker/build-push-action@v2
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
file: Dockerfile.test
|
|
||||||
push: false
|
|
||||||
tags: kartoza/postgis:manual-build
|
|
||||||
load: true
|
|
||||||
- name: Run scenario test
|
- name: Run scenario test
|
||||||
run: |
|
run: |
|
||||||
pushd scenario_tests/${{ matrix.scenario }}
|
pushd scenario_tests/${{ matrix.scenario }}
|
||||||
|
|
|
@ -61,17 +61,21 @@ jobs:
|
||||||
id: docker_build_base
|
id: docker_build_base
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
context: base_build
|
context: .
|
||||||
file: base_build/Dockerfile
|
file: Dockerfile
|
||||||
push: true
|
push: true
|
||||||
load: true
|
|
||||||
tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:base-${{ matrix.distro }}-${{ matrix.imageVersion }}-${{ matrix.imageVariant }}
|
tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:base-${{ matrix.distro }}-${{ matrix.imageVersion }}-${{ matrix.imageVariant }}
|
||||||
build-args: |
|
build-args: |
|
||||||
DISTRO=${{ matrix.distro }}
|
DISTRO=${{ matrix.distro }}
|
||||||
IMAGE_VERSION=${{ matrix.imageVersion }}
|
IMAGE_VERSION=${{ matrix.imageVersion }}
|
||||||
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
||||||
|
GENERATE_ALL_LOCALE=1
|
||||||
|
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }}
|
||||||
|
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }}
|
||||||
|
POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }}
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
cache-from: type=local,src=/tmp/.buildx-cache
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||||
|
target: postgis-base
|
||||||
|
|
||||||
- name: Build prod image
|
- name: Build prod image
|
||||||
id: docker_build_prod
|
id: docker_build_prod
|
||||||
|
@ -84,11 +88,12 @@ jobs:
|
||||||
tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }}
|
tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }}
|
||||||
build-args: |
|
build-args: |
|
||||||
DISTRO=${{ matrix.distro }}
|
DISTRO=${{ matrix.distro }}
|
||||||
IMAGE_OWNER=${{ secrets.DOCKERHUB_REPO }}
|
|
||||||
IMAGE_VERSION=${{ matrix.imageVersion }}
|
IMAGE_VERSION=${{ matrix.imageVersion }}
|
||||||
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
IMAGE_VARIANT=${{ matrix.imageVariant }}
|
||||||
|
GENERATE_ALL_LOCALE=1
|
||||||
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }}
|
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }}
|
||||||
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }}
|
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }}
|
||||||
POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }}
|
POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }}
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
cache-from: type=local,src=/tmp/.buildx-cache
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||||
|
target: postgis-prod
|
||||||
|
|
|
@ -6,3 +6,5 @@
|
||||||
.python-version
|
.python-version
|
||||||
venv
|
venv
|
||||||
__pycache__
|
__pycache__
|
||||||
|
|
||||||
|
.env
|
||||||
|
|
91
Dockerfile
91
Dockerfile
|
@ -1,16 +1,75 @@
|
||||||
#--------- Generic stuff all our Dockerfiles should start with so we get caching ------------
|
##############################################################################
|
||||||
|
# Base stage #
|
||||||
|
##############################################################################
|
||||||
ARG DISTRO=debian
|
ARG DISTRO=debian
|
||||||
ARG IMAGE_OWNER=kartoza
|
|
||||||
ARG IMAGE_VERSION=bullseye
|
ARG IMAGE_VERSION=bullseye
|
||||||
ARG IMAGE_VARIANT=slim
|
ARG IMAGE_VARIANT=slim
|
||||||
FROM $IMAGE_OWNER/postgis:base-$DISTRO-$IMAGE_VERSION-$IMAGE_VARIANT
|
FROM $DISTRO:$IMAGE_VERSION-$IMAGE_VARIANT AS postgis-base
|
||||||
|
MAINTAINER Tim Sutton<tim@kartoza.com>
|
||||||
|
|
||||||
|
# Reset ARG for version
|
||||||
|
ARG IMAGE_VERSION
|
||||||
|
|
||||||
|
RUN apt-get -qq update --fix-missing && apt-get -qq --yes upgrade
|
||||||
|
|
||||||
|
RUN set -eux \
|
||||||
|
&& export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get -y --no-install-recommends install \
|
||||||
|
locales gnupg2 wget ca-certificates rpl pwgen software-properties-common iputils-ping \
|
||||||
|
apt-transport-https curl \
|
||||||
|
&& dpkg-divert --local --rename --add /sbin/initctl
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RUN apt-get -y update; apt-get -y install build-essential autoconf libxml2-dev zlib1g-dev netcat gdal-bin
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Temporary - PostgreSQL requires this which is not available in bullseye
|
||||||
|
ADD base_build/gdal_install.sh /gdal_install.sh
|
||||||
|
RUN chmod 0755 /gdal_install.sh;/bin/bash /gdal_install.sh
|
||||||
|
|
||||||
|
# Generating locales takes a long time. Utilize caching by runnig it by itself
|
||||||
|
# early in the build process.
|
||||||
|
|
||||||
|
# Generate all locale only on deployment mode build
|
||||||
|
# Set to empty string to generate only default locale
|
||||||
|
ARG GENERATE_ALL_LOCALE=1
|
||||||
|
ARG LANG=en_US.UTF-8
|
||||||
|
ENV LANG=en_US.UTF-8 \
|
||||||
|
LANGUAGE=en_US:en \
|
||||||
|
LC_ALL=en_US.UTF-8
|
||||||
|
|
||||||
|
COPY base_build/scripts/locale.gen /etc/all.locale.gen
|
||||||
|
RUN if [ -z "${GENERATE_ALL_LOCALE}" ] || [ $GENERATE_ALL_LOCALE -eq 0 ]; \
|
||||||
|
then \
|
||||||
|
cat /etc/all.locale.gen | grep "${LANG}" > /etc/locale.gen; \
|
||||||
|
else \
|
||||||
|
cp -f /etc/all.locale.gen /etc/locale.gen; \
|
||||||
|
fi; \
|
||||||
|
set -eux \
|
||||||
|
&& /usr/sbin/locale-gen
|
||||||
|
|
||||||
|
RUN update-locale ${LANG}
|
||||||
|
|
||||||
|
# Cleanup resources
|
||||||
|
RUN apt-get -y --purge autoremove \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Production Stage #
|
||||||
|
##############################################################################
|
||||||
|
FROM postgis-base AS postgis-prod
|
||||||
|
|
||||||
MAINTAINER Tim Sutton<tim@kartoza.com>
|
MAINTAINER Tim Sutton<tim@kartoza.com>
|
||||||
|
|
||||||
# Reset ARG for version
|
# Reset ARG for version
|
||||||
ARG IMAGE_VERSION
|
ARG IMAGE_VERSION
|
||||||
ARG POSTGRES_MAJOR_VERSION=13
|
ARG POSTGRES_MAJOR_VERSION=13
|
||||||
ARG POSTGIS_MAJOR=3
|
ARG POSTGIS_MAJOR_VERSION=3
|
||||||
ARG POSTGIS_MINOR_RELEASE=1
|
ARG POSTGIS_MINOR_RELEASE=1
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,15 +95,15 @@ RUN set -eux \
|
||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
&& apt-get -y --no-install-recommends install postgresql-client-${POSTGRES_MAJOR_VERSION} \
|
&& apt-get -y --no-install-recommends install postgresql-client-${POSTGRES_MAJOR_VERSION} \
|
||||||
postgresql-common postgresql-${POSTGRES_MAJOR_VERSION} \
|
postgresql-common postgresql-${POSTGRES_MAJOR_VERSION} \
|
||||||
postgresql-${POSTGRES_MAJOR_VERSION}-postgis-${POSTGIS_MAJOR} \
|
postgresql-${POSTGRES_MAJOR_VERSION}-postgis-${POSTGIS_MAJOR_VERSION} \
|
||||||
netcat postgresql-${POSTGRES_MAJOR_VERSION}-ogr-fdw \
|
netcat postgresql-${POSTGRES_MAJOR_VERSION}-ogr-fdw \
|
||||||
postgresql-${POSTGRES_MAJOR_VERSION}-postgis-${POSTGIS_MAJOR}-scripts \
|
postgresql-${POSTGRES_MAJOR_VERSION}-postgis-${POSTGIS_MAJOR_VERSION}-scripts \
|
||||||
postgresql-plpython3-${POSTGRES_MAJOR_VERSION} postgresql-${POSTGRES_MAJOR_VERSION}-pgrouting \
|
postgresql-plpython3-${POSTGRES_MAJOR_VERSION} postgresql-${POSTGRES_MAJOR_VERSION}-pgrouting \
|
||||||
postgresql-server-dev-${POSTGRES_MAJOR_VERSION} postgresql-${POSTGRES_MAJOR_VERSION}-cron
|
postgresql-server-dev-${POSTGRES_MAJOR_VERSION} postgresql-${POSTGRES_MAJOR_VERSION}-cron
|
||||||
|
|
||||||
|
|
||||||
RUN echo $POSTGRES_MAJOR_VERSION >/tmp/pg_version.txt
|
RUN echo $POSTGRES_MAJOR_VERSION >/tmp/pg_version.txt
|
||||||
RUN echo $POSTGIS_MAJOR >/tmp/pg_major_version.txt
|
RUN echo $POSTGIS_MAJOR_VERSION >/tmp/pg_major_version.txt
|
||||||
RUN echo $POSTGIS_MINOR_RELEASE >/tmp/pg_minor_version.txt
|
RUN echo $POSTGIS_MINOR_RELEASE >/tmp/pg_minor_version.txt
|
||||||
ENV \
|
ENV \
|
||||||
PATH="$PATH:/usr/lib/postgresql/${POSTGRES_MAJOR_VERSION}/bin"
|
PATH="$PATH:/usr/lib/postgresql/${POSTGRES_MAJOR_VERSION}/bin"
|
||||||
|
@ -76,3 +135,21 @@ RUN set -eux \
|
||||||
VOLUME /var/lib/postgresql
|
VOLUME /var/lib/postgresql
|
||||||
|
|
||||||
ENTRYPOINT /scripts/docker-entrypoint.sh
|
ENTRYPOINT /scripts/docker-entrypoint.sh
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Testing Stage #
|
||||||
|
##############################################################################
|
||||||
|
FROM postgis-prod AS postgis-test
|
||||||
|
|
||||||
|
COPY scenario_tests/utils/requirements.txt /lib/utils/requirements.txt
|
||||||
|
|
||||||
|
RUN set -eux \
|
||||||
|
&& export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get -y --no-install-recommends install python3-pip \
|
||||||
|
&& apt-get -y --purge autoremove \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN pip3 install -r /lib/utils/requirements.txt
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
#--------- Generic stuff all our Dockerfiles should start with so we get caching ------------
|
|
||||||
FROM kartoza/postgis:manual-build
|
|
||||||
|
|
||||||
# For testing
|
|
||||||
|
|
||||||
COPY scenario_tests/utils/requirements.txt /lib/utils/requirements.txt
|
|
||||||
|
|
||||||
RUN set -eux \
|
|
||||||
&& export DEBIAN_FRONTEND=noninteractive \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get -y --no-install-recommends install python3-pip \
|
|
||||||
&& apt-get -y --purge autoremove \
|
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN pip3 install -r /lib/utils/requirements.txt
|
|
|
@ -1,57 +0,0 @@
|
||||||
#--------- Generic stuff all our Dockerfiles should start with so we get caching ------------
|
|
||||||
ARG DISTRO=debian
|
|
||||||
ARG IMAGE_VERSION=bullseye
|
|
||||||
ARG IMAGE_VARIANT=slim
|
|
||||||
FROM $DISTRO:$IMAGE_VERSION-$IMAGE_VARIANT
|
|
||||||
MAINTAINER Tim Sutton<tim@kartoza.com>
|
|
||||||
|
|
||||||
# Reset ARG for version
|
|
||||||
ARG IMAGE_VERSION
|
|
||||||
|
|
||||||
RUN apt-get -qq update --fix-missing && apt-get -qq --yes upgrade
|
|
||||||
|
|
||||||
RUN set -eux \
|
|
||||||
&& export DEBIAN_FRONTEND=noninteractive \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get -y --no-install-recommends install \
|
|
||||||
locales gnupg2 wget ca-certificates rpl pwgen software-properties-common iputils-ping \
|
|
||||||
apt-transport-https curl \
|
|
||||||
&& dpkg-divert --local --rename --add /sbin/initctl
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RUN apt-get -y update; apt-get -y install build-essential autoconf libxml2-dev zlib1g-dev netcat gdal-bin
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Temporary - PostgreSQL requires this which is not available in bullseye
|
|
||||||
ADD gdal_install.sh /gdal_install.sh
|
|
||||||
RUN chmod 0755 /gdal_install.sh;/bin/bash /gdal_install.sh
|
|
||||||
|
|
||||||
# Generating locales takes a long time. Utilize caching by runnig it by itself
|
|
||||||
# early in the build process.
|
|
||||||
|
|
||||||
# Generate all locale only on deployment mode build
|
|
||||||
# Set to empty string to generate only default locale
|
|
||||||
ARG GENERATE_ALL_LOCALE=1
|
|
||||||
ENV LANG=en_US.UTF-8 \
|
|
||||||
LANGUAGE=en_US:en \
|
|
||||||
LC_ALL=en_US.UTF-8
|
|
||||||
|
|
||||||
COPY scripts/locale.gen /etc/all.locale.gen
|
|
||||||
RUN if [ -z "${GENERATE_ALL_LOCALE}" ] || [ $GENERATE_ALL_LOCALE -eq 0 ]; \
|
|
||||||
then \
|
|
||||||
cat /etc/all.locale.gen | grep "${LANG}" > /etc/locale.gen; \
|
|
||||||
else \
|
|
||||||
cp -f /etc/all.locale.gen /etc/locale.gen; \
|
|
||||||
fi; \
|
|
||||||
set -eux \
|
|
||||||
&& /usr/sbin/locale-gen
|
|
||||||
|
|
||||||
RUN update-locale ${LANG}
|
|
||||||
|
|
||||||
# Cleanup resources
|
|
||||||
RUN apt-get -y --purge autoremove \
|
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Building an debian base image
|
|
||||||
|
|
||||||
docker build --build-arg DISTRO=debian --build-arg IMAGE_VERSION=bullseye --build-arg IMAGE_VARIANT=slim -t kartoza/postgis:base-debian-bullseye-slim .
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Building an debian base image
|
||||||
|
|
||||||
|
docker-compose -f docker-compose.build.yml build postgis-base
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
# For scenario testing purposes
|
||||||
|
|
||||||
./build.sh
|
docker-compose -f docker-compose.build.yml build postgis-test
|
||||||
|
|
||||||
docker build -t kartoza/postgis:manual-build -f Dockerfile.test .
|
|
||||||
|
|
8
build.sh
8
build.sh
|
@ -1,9 +1,3 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
POSTGRES_MAJOR_VERSION=13
|
|
||||||
POSTGIS_MINOR_RELEASE=1
|
|
||||||
|
|
||||||
pushd base_build
|
docker-compose -f docker-compose.build.yml build postgis-prod
|
||||||
./build.sh
|
|
||||||
popd
|
|
||||||
docker build -t kartoza/postgis:manual-build .
|
|
||||||
docker build --build-arg DISTRO=debian --build-arg IMAGE_VERSION=bullseye --build-arg IMAGE_VARIANT=slim -t kartoza/postgis:${POSTGRES_MAJOR_VERSION}.${POSTGIS_MINOR_RELEASE} .
|
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Used solely for docker-compose build
|
||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
postgis-base:
|
||||||
|
image: kartoza/postgis:base-${DISTRO}-${IMAGE_VERSION}-${IMAGE_VARIANT}
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
# Use yaml anchor for reusability
|
||||||
|
args: &build-args-anchor
|
||||||
|
DISTRO: ${DISTRO}
|
||||||
|
IMAGE_VERSION: ${IMAGE_VERSION}
|
||||||
|
IMAGE_VARIANT: ${IMAGE_VARIANT}
|
||||||
|
GENERATE_ALL_LOCALE: ${GENERATE_ALL_LOCALE}
|
||||||
|
POSTGRES_MAJOR_VERSION: ${POSTGRES_MAJOR_VERSION}
|
||||||
|
POSTGIS_MAJOR_VERSION: ${POSTGIS_MAJOR_VERSION}
|
||||||
|
POSTGIS_MINOR_RELEASE: ${POSTGIS_MINOR_RELEASE}
|
||||||
|
target: postgis-base
|
||||||
|
|
||||||
|
postgis-prod:
|
||||||
|
image: kartoza/postgis:${POSTGRES_MAJOR_VERSION}-${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_RELEASE}
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
args:
|
||||||
|
<<: *build-args-anchor
|
||||||
|
target: postgis-prod
|
||||||
|
|
||||||
|
postgis-test:
|
||||||
|
image: kartoza/postgis:manual-build
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
args:
|
||||||
|
<<: *build-args-anchor
|
||||||
|
target: postgis-test
|
Ładowanie…
Reference in New Issue