This is the fifth article in the blog series on what makes FlexDeploy a perfect fit for container native technologies:
- FlexDeploy Loves Containers: Build and Deploy Microservices to Kubernetes Clusters in the Cloud
- Enrich Oracle Container Native Application Development Platform with FlexDeploy Pipelines
- FlexDeploy Loves Functions: Deploy Docker Containers with Fn Functions
- FlexDeploy Loves Functions: Build Docker Containers with Fn Functions
- FlexDeploy is a Container: Run FlexDeploy as a Docker Container
- FlexDeploy Loves Containers: Build FlexDeploy Plugins with Docker
FlexDeploy is available as a Docker container.
There are a few public Docker Hub repositories with FlexDeploy Community edition:
|flexdeploy/fd_tcat_xe_460||FD 4.6.0.X||Every HotFix||Corresponds to a version e.g. 220.127.116.11, 18.104.22.168, etc.||Y||A line of hot fixes for FD 4.6.0 release. Contains FlexDeploy Tomcat application, empty FlexDeploy database (Oracle XE) .|
|flexdeploy/fd_tcat_460||FD 4.6.0.X||Every HotFix||Corresponds to a version e.g. 22.214.171.124, 126.96.36.199, etc.||Y||A line of hot fixes for FD 4.6.0 release. Contains FlexDeploy Tomcat application. This image does not contain database.|
|flexdeploy/fd_tcat_xe_46x||FD 4.6.1 – 4.6.4||Every 4 weeks||Corresponds to a version e.g. 4.6.1, 4.6.2, etc.||N||A line of intermediate pre-releases of 5.0.0 release. Contains FlexDeploy Tomcat application, empty FlexDeploy database (Oracle XE) . Should be used for POC, demo, learning, etc. purposes only.|
There are Docker images with stable FlexDeploy versions which can be used in production environment and images for POC, demo and educational purposes. Those POC images introduce new features and enhancements frequently which has some impact on the overall stability, so it’s not recommended to use them in production environment.
Images in flexdeploy/fd_tcat_460 repository don’t contain any database, they have FlexDeploy Tomcat application (including Tomcat ) only. This image requires that a FlexDeploy database is up and running in your environment. Actually these images are supposed to be used in production. Whenever we create a container out of these images we specify jdbc url of an existing FlexDeploy database instance along with fd_admin password:
docker run --name flexdeploy -p 8008:8080 --shm-size=1gb flexdeploy/fd_tcat_460:188.8.131.52 -u jdbc:oracle:thin:@flexdbhost:1521:flexdb -p welcome1
The Docker command above creates a container out of flexdeploy/fd_tcat_460:184.108.40.206 image and starts it. Approximately in a minute when you see in the execution log a message like “Server startup in …” FlexDeploy container is up and available at http://localhost:8008/flexdeploy.
24-Jul-2018 19:20:59.679 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080] 24-Jul-2018 19:20:59.696 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009] 24-Jul-2018 19:20:59.698 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 73144 ms
If you are accessing FlexDeploy for the first time (it always happens when you are creating a container from an image containing FlexDeploy database), it will forward you to the registration page asking to provide some contact information and to agree with the Terms and Conditions:
Having done that you will be able to login to FlexDeploy in a regular way.
FlexDeploy Docker image comes with preinstalled set of some basic plugins:
If you need more, you can use the link on the screen which will forward you to a page with all available plugins where you can download whatever you need.
In order to save your computing resources FlexDeploy container can be easily stopped:
docker stop flexdeploy
and started when it is going to be used again:
docker start -i flexdeploy
When a container is not needed anymore you can remove it. This operation will clean all the data associated with the container:
docker rm -v flexdeploy
Obviously, you can run FlexDeploy containers on any machine having Docker engine installed. It can be a local machine with basic Docker configuration or it can be a Kubernetes cluster somewhere in the cloud.