added conf volume

This commit is contained in:
Sameer Naik
2015-08-10 23:42:16 +05:30
parent 7f344811f2
commit 1eb940dad0
6 changed files with 25 additions and 9 deletions

View File

@@ -14,7 +14,7 @@ RUN sh $BITNAMI_PREFIX/install.sh\
COPY bitnami-utils-custom.sh /bitnami-utils-custom.sh
EXPOSE 5432
VOLUME ["$BITNAMI_APP_VOL_PREFIX/data", "$BITNAMI_APP_VOL_PREFIX/logs"]
VOLUME ["$BITNAMI_APP_VOL_PREFIX/data", "$BITNAMI_APP_VOL_PREFIX/conf", "$BITNAMI_APP_VOL_PREFIX/logs"]
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -9,19 +9,27 @@ initialize_database() {
gosu $BITNAMI_APP_USER $BITNAMI_APP_DIR/bin/initdb -D $BITNAMI_APP_DIR/data \
-U $BITNAMI_APP_USER -E unicode -A trust >/dev/null
echo "==> Populating conf files..."
echo ""
mv $BITNAMI_APP_DIR/data/{pg_hba.conf,pg_ident.conf,postgresql.auto.conf,postgresql.conf} $BITNAMI_APP_DIR/conf/
ln -sf $BITNAMI_APP_DIR/conf/pg_hba.conf $BITNAMI_APP_DIR/data/
ln -sf $BITNAMI_APP_DIR/conf/pg_ident.conf $BITNAMI_APP_DIR/data/
ln -sf $BITNAMI_APP_DIR/conf/postgresql.auto.conf $BITNAMI_APP_DIR/data/
ln -sf $BITNAMI_APP_DIR/conf/postgresql.conf $BITNAMI_APP_DIR/data/
echo "==> Configuring PostgreSQL to listen on all interfaces..."
echo ""
cat >> $BITNAMI_APP_DIR/data/postgresql.conf <<EOF
cat >> $BITNAMI_APP_DIR/conf/postgresql.conf <<EOF
listen_addresses='*'
EOF
echo "==> Enabling remote connections to PostgreSQL server..."
echo ""
cat >> $BITNAMI_APP_DIR/data/pg_hba.conf <<EOF
cat >> $BITNAMI_APP_DIR/conf/pg_hba.conf <<EOF
host all all 0.0.0.0/0 md5
EOF
cat >> $BITNAMI_APP_DIR/data/postgresql.conf <<EOF
cat >> $BITNAMI_APP_DIR/conf/postgresql.conf <<EOF
logging_collector = on
log_directory = '$BITNAMI_APP_DIR/logs'
log_filename = 'postgresql.log'

View File

@@ -7,6 +7,7 @@
VOLUMES:
$BITNAMI_APP_VOL_PREFIX/data: Location of $BITNAMI_APP_NAME data files.
$BITNAMI_APP_VOL_PREFIX/conf: Location of $BITNAMI_APP_NAME config files.
$BITNAMI_APP_VOL_PREFIX/logs: Location of postgresql.log.
PORTS:
@@ -15,7 +16,7 @@
MISC:
Options: You can add extra options during the docker run using the -- prefix.
Note: POSTGRESQL_USER works in conjunction with POSTGRESQL_DATABASE environment variable.
Tip: Back up the $BITNAMI_APP_VOL_PREFIX/data directory regularly.
Tip: Back up the $BITNAMI_APP_VOL_PREFIX/data and $BITNAMI_APP_VOL_PREFIX/conf directories regularly.
COMMANDS:
print-help: Print this page.

View File

@@ -4,6 +4,7 @@ environment_variables:
POSTGRESQL_DATABASE: "Database to be created on first boot, accessible by POSTGRESQL_USER (default: none)."
volumes:
$BITNAMI_APP_VOL_PREFIX/data: "Location of $BITNAMI_APP_NAME data files."
$BITNAMI_APP_VOL_PREFIX/conf: "Location of $BITNAMI_APP_NAME config files."
$BITNAMI_APP_VOL_PREFIX/logs: "Location of postgresql.log."
ports:
5432: "$BITNAMI_APP_NAME default port."
@@ -11,4 +12,4 @@ misc:
Options: "You can add extra options during the docker run using the -- prefix."
Note: "The user and database creation happens only the first time you run the container."
Note: "POSTGRESQL_USER works in conjunction with POSTGRESQL_DATABASE environment variable."
Tip: "Back up the $BITNAMI_APP_VOL_PREFIX/data directory regularly."
Tip: "Back up the $BITNAMI_APP_VOL_PREFIX/data and $BITNAMI_APP_VOL_PREFIX/conf directories regularly."

View File

@@ -3,7 +3,9 @@ cd $BITNAMI_APP_DIR
mkdir -p $BITNAMI_APP_DIR/data
mkdir -p $BITNAMI_APP_DIR/logs
mkdir -p $BITNAMI_APP_DIR/conf
# symlink mount points at root to install dir
ln -s $BITNAMI_APP_DIR/data $BITNAMI_APP_VOL_PREFIX/data
ln -s $BITNAMI_APP_DIR/logs $BITNAMI_APP_VOL_PREFIX/logs
ln -s $BITNAMI_APP_DIR/conf $BITNAMI_APP_VOL_PREFIX/conf

View File

@@ -27,8 +27,9 @@ teardown() {
cleanup_volumes_content() {
docker run --rm\
-v $HOST_VOL_PREFIX/data:$VOL_PREFIX/data\
-v $HOST_VOL_PREFIX/conf:$VOL_PREFIX/conf\
-v $HOST_VOL_PREFIX/logs:$VOL_PREFIX/logs\
$IMAGE_NAME rm -rf $VOL_PREFIX/data/ $VOL_PREFIX/logs/
$IMAGE_NAME rm -rf $VOL_PREFIX/data/ $VOL_PREFIX/logs/ $VOL_PREFIX/conf/
}
create_container(){
@@ -55,6 +56,7 @@ create_full_container_mounted(){
-e POSTGRESQL_DATABASE=$POSTGRESQL_DATABASE\
-e POSTGRESQL_PASSWORD=$POSTGRESQL_PASSWORD\
-v $HOST_VOL_PREFIX/data:$VOL_PREFIX/data\
-v $HOST_VOL_PREFIX/conf:$VOL_PREFIX/conf\
-v $HOST_VOL_PREFIX/logs:$VOL_PREFIX/logs\
$IMAGE_NAME
sleep $SLEEP_TIME
@@ -129,6 +131,7 @@ create_full_container_mounted(){
docker run -d --name $CONTAINER_NAME\
-v $HOST_VOL_PREFIX/data:$VOL_PREFIX/data\
-v $HOST_VOL_PREFIX/conf:$VOL_PREFIX/conf\
$IMAGE_NAME
sleep $SLEEP_TIME
@@ -141,12 +144,13 @@ create_full_container_mounted(){
create_container -d
run docker inspect $CONTAINER_NAME
[[ "$output" =~ "$VOL_PREFIX/data" ]]
[[ "$output" =~ "$VOL_PREFIX/conf" ]]
[[ "$output" =~ "$VOL_PREFIX/logs" ]]
}
@test "Data gets generated in data and logs if bind mounted in the host" {
@test "Data gets generated in conf, data and logs if bind mounted in the host" {
create_full_container_mounted
run docker run -v $HOST_VOL_PREFIX:$HOST_VOL_PREFIX --rm $IMAGE_NAME ls -l $HOST_VOL_PREFIX/data/postgresql.conf $HOST_VOL_PREFIX/logs/postgresql.log
run docker run -v $HOST_VOL_PREFIX:$HOST_VOL_PREFIX --rm $IMAGE_NAME ls -l $HOST_VOL_PREFIX/conf/postgresql.conf $HOST_VOL_PREFIX/logs/postgresql.log
[ $status = 0 ]
cleanup_volumes_content
}