This page provides instructions for manually upgrading a FlexDeploy docker install to use newer version of FlexDeploy Docker image. You will need to download appropriate version of FlexDeploy Tomcat distribution for database scripts and plugins.
It is only recommended to use the manual instructions if you are using Kubernetes or have a more complicated configuration. For most people we recommend using the automated installer.
Beginning with FlexDeploy 6.0.0.7, 6.5.0.2, 7.0.0.0 the mount point from the container side has changed to /dockervolume. Previously it was /home/oracle now it is /dockervolume. This will only affect the run command, make sure you use /dockervolume.
Step 1. Stop the container
Stop the Docker container using name. docker stop <name>.
If you are using Kubernetes you’ll need to translate any docker commands into the equivalent Kubernetes.
Step 2. Backup the FlexDeploy schemas and Artifact Repository.
Backup the FlexDeploy schemas, Artifact Repository, plugins folder, and apache-tomcat-flexdeploy folder. In case you need to back out this FlexDeploy upgrade, you can use this backup data. It is highly recommended that a backup of the database be taken using standard tools like RMAN for Oracle. Another option would be to export the FD, FD_ADMIN, and FF schemas using data pump. Follow standard procedures for PostgreSQL for database backup.PostgreSQL database backup
pg_dumpall -w -U postgres -f fd_db_bkp.bkp -p 5432
Oracle database backup
# If this database is exclusively used for just FlexDeploy application, you can rely on your Database backup and recovery processes (RMAN) instead of export data procedure.
# You will need to setup environment variables before running expdp. For example,
export ORACLE_HOME=c:\oracle\product\12.1.0\dbhome_1
export ORACLE_SID=fd01
# export statements above are for example only as values will be different for your installation.
expdp system directory=DATA_PUMP_DIR dumpfile=fd_bkup.dmp schemas=FD,FF,FD_ADMIN
File System backup
It is recommended that a backup of the container volume mounted to /dockervolume
be created in case a back out is needed.
Step 3. Upgrade the FlexDeploy schemas
See details in Upgrading FlexDeploy Schemas.
Step 4. Copy plugins from download zip for auto upload.
FlexDeploy download zip contains plugin jar files. You just need to copy plugin jars from download zip to plugins folder in your installation (details explained below), and all plugins will be automatically uploaded and activated on server startup.
Plugin files to copy are in the unzipped Tomcat Complete file.
Copy the plugins into the <Mounted Volume>/Plugins directory.
Step 5 . Pull and start new docker image for FlexDeploy.
If using Kubernetes you will instead need to modify your manifest to use the newer version, and to add any new required environment variables.
docker pull flexdeploy/fd_tcat:VERSION
User same values as used for previous version of FlexDeploy when starting new version of image, other than the version. Here is a refresher of what the values are:
p
- in this example 8000 is the port which FlexDeploy will be accessed on mapping to port 8080 in the containerFLEX_DB_URL
- jdbc URL for accessing the database. See below for syntaxFD_ADMIN_PWD
- Password for the fdadmin user in the databaseTZ
- Time zone for the container. Given example is America/Chicago.dbtype
- if you are using postgres or oracle database.v
- This will set where your application, repository, vsm and logs folders will go on the docker host. Everything before the colon is on the local machine, after is inside the container. Leave that as /dockervolumeMAX_ACTIVE_CONNECTIONS
- The maximum number of active DB connections that can be allocated from the connection pool at the same time. Default value is 100.MAX_IDLE_CONNECTIONS
- The maximum number of connections that should be kept in the pool at all times. Default is 100.MAX_WAIT_TIME_MILLIS
- The maximum number of milliseconds that the pool will wait when there are no available connections. Default is 30000(30 Secs).Last is the image which will be flexdeploy/fd_tcat: and the version you want to run.
docker run --name flexdeploy -p 8000:8080 -e FLEX_DB_URL="jdbc:oracle:thin:@URL:PORT:xe" -e FD_ADMIN_PWD=DATABASEPASSWORD -e TZ=America/Chicago -e dbtype=oracle|postgres -v /scratch/flexdeploy:/dockervolume flexdeploy/fd_tcat:VERSION
Example JDBC URL (FLEX_DB_URL)
Oracle
Localhost XE connection will look like this. jdbc:oracle:thin:@localhost:1521:XE
SID based JDBC URL Syntax - jdbc:oracle:thin:@HOSTNAME:PORT:SID
Service Name based JDBC URL Syntax - jdbc:oracle:thin:@//HOSTNAME:PORT/SERVICENAME
PostgreSQL
Syntax - jdbc:postgresql://hostname:port/flexdeploy
Example - jdbc:postgresql://dkrlp01:5432/flexdeploy
Step 6. Launch FlexDeploy in your browser
http://<hostname>:<port>/flexdeploy
There is no need to activate plugins manually. FlexDeploy will automatically upload and activate new versions of plugins once they are copied to plugins folder. You will notice that plugins that you copied in Step 8 will eventually be uploaded automatically and folder will not have any jar files left. You can also look at Administration - Plugins in UI and see newer versions of plugins.