From 10cfa870051109a7beb4711338be212a5f450c91 Mon Sep 17 00:00:00 2001
From: Maxim Thomas <maxim.thomas@gmail.com>
Date: Thu, 07 Feb 2019 07:30:49 +0000
Subject: [PATCH] FIX Dockerfile https://github.com/OpenIdentityPlatform/OpenDJ/issues/35 

---
 opendj-packages/opendj-docker/pom.xml                                    |    5 +++--
 opendj-packages/opendj-docker/run.sh                                     |   11 ++++++++---
 opendj-packages/opendj-openshift-template/opendj-openshift-template.yaml |    0 
 .travis.yml                                                              |   24 ++++++++++++------------
 opendj-packages/opendj-docker/Dockerfile                                 |   12 +++++-------
 5 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index fb00939..98d0ee9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,11 +9,11 @@
     sudo: required
     services:
       - docker
-    before_deploy: 
+    before_deploy:
       - git config --local user.name "Open Identity Platform Community" && git config --local user.email "open-identity-platform-opendj@googlegroups.com"
       - git checkout -f $TRAVIS_BRANCH
       - git tag -f $git_version && git tag -d $git_version
-      - mvn -q -B -DreleaseVersion="$git_version" -DignoreSnapshots=true  -DpushChanges=false -DscmCommentPrefix="[ci skip] $git_version_last->$git_version " -DskipTests -Darguments=-DskipTests -Dresume=false -P distribution release:prepare 
+      - mvn -q -B -DreleaseVersion="$git_version" -DignoreSnapshots=true  -DpushChanges=false -DscmCommentPrefix="[ci skip] $git_version_last->$git_version " -DskipTests -Darguments=-DskipTests -Dresume=false -P distribution release:prepare
       - git push --quiet --force https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.git >/dev/null 2>&1
       - git push --quiet --force https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.git $git_version >/dev/null 2>&1
     deploy:
@@ -29,13 +29,13 @@
       skip_cleanup: true
       overwrite: true
       file_glob: true
-      file: 
+      file:
         - "opendj-server-legacy/target/package/*.zip"
         - "opendj-ldap-toolkit/target/*.zip"
         - "opendj-packages/opendj-deb/opendj-deb-standard/target/*.deb"
         - "opendj-packages/opendj-rpm/opendj-rpm-standard/target/rpm/opendj/RPMS/noarch/*.rpm"
         - "opendj-packages/opendj-msi/opendj-msi-standard/target/*.msi"
-        - "opendj-packages/opendj-docker/target/Dockerfile"
+        - "opendj-packages/opendj-docker/target/Dockerfile.zip"
         - "opendj-packages/opendj-openshift-template/*.yaml"
         - "opendj-doc-generated-ref/target/*.zip"
         - "opendj-dsml-servlet/target/*.war"
@@ -43,21 +43,21 @@
       on:
         repo: OpenIdentityPlatform/OpenDJ
         tags: false
-        branch: 
+        branch:
           - master
           - travis
     after_deploy:
       - echo 'after_deploy'
       - echo 'publish docs in wiki'
-      -   git clone https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.wiki.git ../wiki >/dev/null 2>&1   
-      -   rm -rf ../wiki/docbkx; mv opendj-doc-generated-ref/target/docbkx ../wiki; 
+      -   git clone https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.wiki.git ../wiki >/dev/null 2>&1
+      -   rm -rf ../wiki/docbkx; mv opendj-doc-generated-ref/target/docbkx ../wiki;
       -   cd ../wiki; git add -A; git commit -a -m "upload docs after deploy $git_version"; git tag -f $git_version
       -   git push --quiet --force https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.wiki.git >/dev/null 2>&1
-      -   git push --quiet --force https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.wiki.git $git_version >/dev/null 2>&1 
+      -   git push --quiet --force https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.wiki.git $git_version >/dev/null 2>&1
       -   cd $TRAVIS_BUILD_DIR
       - echo 'build and push Docker'
       -   docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"
-      -   docker build ./opendj-packages/opendj-docker/target -t $DOCKER_USERNAME/opendj -t $DOCKER_USERNAME/opendj:$git_version
+      -   docker build ./opendj-packages/opendj-docker/target/opendj-docker -t $DOCKER_USERNAME/opendj -t $DOCKER_USERNAME/opendj:$git_version
       -   docker push $DOCKER_USERNAME/opendj:$git_version
       -   docker push $DOCKER_USERNAME/opendj
   - os: linux
@@ -68,11 +68,11 @@
     jdk: openjdk11
   - os: osx
     osx_image: xcode9.3
-    env: 
+    env:
       - WINEPREFIX=~/.wine32 WINEARCH=win32 # wine on mac hangs
   - os: osx
     osx_image: xcode10.1
-    env: 
+    env:
       - WINEPREFIX=~/.wine32 WINEARCH=win32 # wine on mac hangs
   allow_failures:
   - os: osx
@@ -85,7 +85,7 @@
 before_install:
   - date -u
   - uname -a
-  - if [[ "$TRAVIS_OS_NAME" == "osx" ]] ; then brew install rpm wine; else sudo apt-get install -y rpm wine; fi 
+  - if [[ "$TRAVIS_OS_NAME" == "osx" ]] ; then brew install rpm wine; else sudo apt-get install -y rpm wine; fi
   - git fetch -t
   - export git_version_last="$(git describe --abbrev=0 --tags)"
   - export git_version="$(echo $git_version_last | awk -F . '{ printf "%d.%d.%d", $1,$2,$3 + 1}')"
diff --git a/opendj-packages/opendj-docker/Dockerfile b/opendj-packages/opendj-docker/Dockerfile
index 878b909..b6aeaac 100644
--- a/opendj-packages/opendj-docker/Dockerfile
+++ b/opendj-packages/opendj-docker/Dockerfile
@@ -20,9 +20,7 @@
 
 ENV OPENDJ_REPLICATION_TYPE=${OPENDJ_REPLICATION_TYPE}
 
-ENV VERSION=@project_version@
-
-#ENV VERSION=4.3.1
+ARG VERSION=@project_version@
 
 ENV OPENDJ_USER="opendj"
 
@@ -33,9 +31,6 @@
   unzip opendj-$VERSION.zip && \
   rm -r opendj-$VERSION.zip
 
-RUN echo "/opt/opendj/data" > /opt/opendj/instance.loc  && \
-    mkdir -p /opt/opendj/data/lib/extensions
-
 ADD bootstrap/ /opt/opendj/bootstrap/
 
 ADD run.sh /opt/opendj/run.sh
@@ -43,7 +38,10 @@
 RUN useradd -m -r -u 1001 -G root,sudo $OPENDJ_USER
 
 RUN chgrp -R 0 /opt/opendj && \
-    chmod -R g=u /opt/opendj
+    chmod -R g=u /opt/opendj && \
+    chmod +x /opt/opendj/run.sh \
+     /opt/opendj/bootstrap/setup.sh \
+     /opt/opendj/bootstrap/replicate.sh
 
 EXPOSE $PORT $LDAPS_PORT 4444
 
diff --git a/opendj-packages/opendj-docker/pom.xml b/opendj-packages/opendj-docker/pom.xml
index d48c482..2f5e240 100644
--- a/opendj-packages/opendj-docker/pom.xml
+++ b/opendj-packages/opendj-docker/pom.xml
@@ -48,16 +48,17 @@
 				        <phase>prepare-package</phase>
 				        <configuration>
 				          <tasks>
-				          	<copy todir="${project.build.directory}">
+				          	<copy todir="${project.build.directory}/opendj-docker/">
     							    <fileset dir="${basedir}">
         							  <include name="Dockerfile" />  <!--NOTE DIFFERENCE HERE-->
                         <include name="bootstrap/**" />
                         <include name="run.sh" />
     							    </fileset>
 							      </copy>
-				            <replace token="@project_version@" value="${project.version}" dir="target/">
+				            <replace token="@project_version@" value="${project.version}" dir="${project.build.directory}/opendj-docker/">
 				              <include name="Dockerfile" />
 				            </replace>
+                    <zip basedir="${project.build.directory}" destfile="${project.build.directory}/Dockerfile.zip" includes="opendj-docker/**" />
 				          </tasks>
 				        </configuration>
 				        <goals>
diff --git a/opendj-packages/opendj-docker/run.sh b/opendj-packages/opendj-docker/run.sh
index d91e4ea..e93ae08 100755
--- a/opendj-packages/opendj-docker/run.sh
+++ b/opendj-packages/opendj-docker/run.sh
@@ -10,6 +10,11 @@
 
 cd /opt/opendj
 
+#if defaul data folder exists do not change it
+if [ ! -d ./db ] ; then
+  echo "/opt/opendj/data" > /opt/opendj/instance.loc  && \
+    mkdir -p /opt/opendj/data/lib/extensions
+fi
 
 # Instance dir does not exist? Then we need to run setup
 if [ ! -d ./data/config ] ; then
@@ -33,6 +38,7 @@
       /opt/opendj/bootstrap/replicate.sh
    fi
 else
+ sh ./upgrade -n
  exec ./bin/start-ds --nodetach
  return
 fi
@@ -56,9 +62,8 @@
    while true; do sleep 100000; done
 fi
 
+echo "Try to upgrade OpenDJ"
+sh ./upgrade -n
 
 echo "Starting OpenDJ"
-
-#
-
 exec ./bin/start-ds --nodetach
diff --git a/opendj-packages/opendj-openshift-template/opendj-template.yaml b/opendj-packages/opendj-openshift-template/opendj-openshift-template.yaml
similarity index 100%
rename from opendj-packages/opendj-openshift-template/opendj-template.yaml
rename to opendj-packages/opendj-openshift-template/opendj-openshift-template.yaml

--
Gitblit v1.10.0