mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
This results in a much more slim-line container, requiring fewer resources to run. In addition, the majority of the build is now done using the Docker infrastructure, allowing for quicker rebuilds and better use of layers.
63 lines
2.1 KiB
Bash
Executable File
63 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
########################################################################
|
|
#
|
|
# pgAdmin 4 - PostgreSQL Tools
|
|
#
|
|
# Copyright (C) 2013 - 2018, The pgAdmin Development Team
|
|
# This software is released under the PostgreSQL Licence
|
|
#
|
|
#########################################################################
|
|
|
|
# Runtime checks
|
|
if [ ! -d runtime -a ! -d web ]; then
|
|
echo This script must be run from the top-level directory of the source tree.
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d .git -a ! -f .git/config ]; then
|
|
echo This script must be run from a git checkout of the source tree.
|
|
exit 1
|
|
fi
|
|
|
|
# Get the required package info
|
|
APP_RELEASE=`grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g'`
|
|
APP_REVISION=`grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g'`
|
|
APP_NAME=`grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //'`
|
|
APP_LONG_VERSION=$APP_RELEASE.$APP_REVISION
|
|
APP_SHORT_VERSION=`echo $APP_LONG_VERSION | cut -d . -f1,2`
|
|
APP_SUFFIX=`grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g"`
|
|
if [ ! -z $APP_SUFFIX ]; then
|
|
export APP_LONG_VERSION=$APP_LONG_VERSION-$APP_SUFFIX
|
|
fi
|
|
CONTAINER_NAME=`echo $APP_NAME | sed 's/ //g' | awk '{print tolower($0)}'`
|
|
|
|
# Output basic details to show we're working
|
|
echo Building Docker Container for $APP_NAME version $APP_LONG_VERSION...
|
|
|
|
# Create/clearout the build directory
|
|
echo Creating/cleaning required directories...
|
|
if [ -d docker-build ]; then
|
|
rm -rf docker-build
|
|
fi
|
|
|
|
mkdir -p docker-build/pgadmin4
|
|
|
|
# Build the clean tree
|
|
echo Copying source tree...
|
|
git archive HEAD -- docs web requirements.txt | tar xvf - -C docker-build/pgadmin4
|
|
|
|
# Copy the Docker specific assets into place
|
|
cp pkg/docker/Dockerfile \
|
|
pkg/docker/entrypoint.sh \
|
|
pkg/docker/config_distro.py \
|
|
pkg/docker/run_pgadmin.py \
|
|
pkg/docker/.dockerignore \
|
|
docker-build/
|
|
|
|
# Build the container
|
|
docker build docker-build -t $CONTAINER_NAME \
|
|
-t $CONTAINER_NAME:latest \
|
|
-t $CONTAINER_NAME:$APP_RELEASE \
|
|
-t $CONTAINER_NAME:$APP_LONG_VERSION
|