fuzziebrain / docker-apex-stack

Utility scripts for creating an Oracle Application Express stack as a Docker container.
MIT License
97 stars 34 forks source link

RTU_ENABLED doesn't work as there is no VOLUME statement in dockerfiles #25

Open ksawerykarwacki opened 4 years ago

ksawerykarwacki commented 4 years ago

As described in the title this snippet doesn't work anymore. I ended up with image without apex and ords started.

`# RTU_ENABLED default 'N'

The following is used for preparing "ready to use" images for internal use only.

if [[ $RTU_ENABLED =~ (Y|y) ]]; then echo "##### Modify target Dockerfile #####" REPLACEMENT_STRING=$'COPY scripts/setup/ \$ORACLE_BASE/scripts/setup/\\nCOPY scripts/startup/ \$ORACLE_BASE/scripts/startup/\\nCOPY files/ /tmp/files/\\n' sed $SED_OPTS "s|^VOLUME.+$|${REPLACEMENT_STRING}|g" dockerfiles/${DB_VERSION}/${DOCKER_FILE:-Dockerfile} mkdir -p dockerfiles/${DB_VERSION}/files cp $FILES_DIR/$INSTALL_FILE_APEX $FILES_DIR/$INSTALL_FILE_ORDS $FILES_DIR/$INSTALL_FILE_JAVA dockerfiles/${DB_VERSION}/files/ cp -R scripts dockerfiles/${DB_VERSION}/scripts fi`

fuzziebrain commented 4 years ago

Thanks. It appears the VOLUME statement was removed a few months ago. I'll work on a fix.

ksawerykarwacki commented 4 years ago

Great, I'm looking forward because I really need this feature and reliable way to build images pretty soon (12c lifecycle ends in November, time to start running dev tests and regression on something newer)

Coffei commented 1 year ago

For anybody interested, I fixed the RTU with the following diff. Since there's no VOLUME in the Dockerfile I just put the COPY statements before CMD (which should stay as the last command in the Dockerfile). Feel free to use the diff in any way.

diff --git a/01-build.sh b/01-build.sh
index 46003fa..fd555e9 100755
--- a/01-build.sh
+++ b/01-build.sh
@@ -111,9 +111,9 @@ cd $BASE_DIR
 if [[ $RTU_ENABLED =~ (Y|y) ]]; then
   echo "##### Modify target Dockerfile #####"
   REPLACEMENT_STRING=$'COPY scripts/setup/ \$ORACLE_BASE/scripts/setup/\\\nCOPY scripts/startup/ \$ORACLE_BASE/scripts/startup/\\\nCOPY files/ /tmp/files/\\\n'
-  sed $SED_OPTS "s|^VOLUME.+$|${REPLACEMENT_STRING}|g" dockerfiles/${DB_VERSION}/${DOCKER_FILE:-Dockerfile}
+  sed $SED_OPTS "s|^CMD.+$|${REPLACEMENT_STRING}\0|g" dockerfiles/${DB_VERSION}/${DOCKER_FILE:-Dockerfile}
   mkdir -p dockerfiles/${DB_VERSION}/files
   cp $FILES_DIR/$INSTALL_FILE_APEX $FILES_DIR/$INSTALL_FILE_ORDS $FILES_DIR/$INSTALL_FILE_JAVA dockerfiles/${DB_VERSION}/files/
   cp -R scripts dockerfiles/${DB_VERSION}/scripts
 fi