Create GoldenGate 21c Microservices Docker Container under 5 min

This Thanksgiving weekend, I wanted to create an easy and repeatable process to instantiate a GoldenGate Docker container for different versions.

I wanted to be able to create a working container in under 5 minutes, for those quick calls when you need to test something, show someone a feature or etc. To achieve that, I needed first to set up my laptop with the docker images and download the GoldenGate software. One might say, this can be easily achieved in the OCI Marketplace but there is a cost involved that I wanted to try to avoid.

Here are the initial steps:

  1. Download and install Docker (in my case for Mac)
  2. Download GoldenGate Docker Repository:
  3. Download GoldenGate 21c from Oracle Download website:

Now that we have the environment setup and all files downloaded we can easily create the containers (I would say) in less than 5 minutes, here are the steps I used:

1. Check the downloaded file:

alima2:21c alexlima$ cd /Users/alexlima/Documents/GitHub/docker-images/OracleGoldenGate/21c
alima2:21c alexlima$ ls -lrt
total 744280
-rwxr-xr-x@ 1 alexlima  staff       2075 Sep  2 16:21 install-deployment.sh
-rwxr-xr-x@ 1 alexlima  staff        950 Sep  2 16:21 install-prerequisites.sh
drwxr-xr-x  4 alexlima  staff        128 Sep  2 16:21 samples
-rw-r--r--@ 1 alexlima  staff        986 Sep 23 10:52 Dockerfile
drwxr-xr-x  7 alexlima  staff        224 Sep 23 10:52 bin
drwxr-xr-x  5 alexlima  staff        160 Sep 23 10:52 nginx
-rw-r--r--@ 1 alexlima  staff  381014026 Sep 23 11:52 213000_fbo_ggs_Linux_x64_Oracle_services_shiphome.zip
-rw-r--r--@ 1 alexlima  staff      20852 Sep 23 13:37 Docker_1st_run.txt
-rw-r--r--@ 1 alexlima  staff      12882 Nov 25 14:03 README.md

Or check-in Finder (Mac):

2. From the repository we will build the base image, this image will be the source for all different containers I want to create:

alima2:21c alexlima$ docker build --tag=goldengate213ma:21.3MA  \
--build-arg INSTALLER=213000_fbo_ggs_Linux_x64_Oracle_services_shiphome.zip .

This step took just under 2 minutes in my laptop.

3. Create in custom Docker network for internal communication:

alima2:21c alexlima$ docker network create \
--driver=bridge \
--ip-range=172.18.10.0/16 \
--subnet=172.18.0.0/16 \
ogg_docker_network

This steps took only seconds.

4. Create the first container, representing the West datacenter:

########   WEST
alima2:21c alexlima$ docker run -dit	 \
--name ogg213mawest \
--network ogg_docker_network \
--hostname=ogg213c-west \
--memory=1024M \
--privileged \
-v ${PWD}/cert:/etc/nginx/cert:rw \
-p 415:443/tcp \
-e OGG_ADMIN_PWD=WwelcomE##123 \
-e OGG_DEPLOYMENT=West \
goldengate213ma:21.3MA 

This steps took only seconds.

5- Check the Docker Dashboard:

6- Launch West OGG Service Manager:

7. Let’s build another container, now representing the East datacenter:

########   EAST
alima2:21c alexlima$ docker run -dit	 \
--name ogg213maeast \
--network ogg_docker_network \
--hostname=ogg213c-east \
--memory=1024M \
--privileged \
-v ${PWD}/cert:/etc/nginx/cert:rw \
-p 305:443/tcp \
-e OGG_ADMIN_PWD=WwelcomE##123 \
-e OGG_DEPLOYMENT=East \
goldengate213ma:21.3MA 

8. Check the Docker Dashboard:

9. Launch East OGG Service Manager:

I hope this was helpful and you can easily create your GoldenGate environment locally and start learning and creating your integrations.

Standby for other posts on how to create a container database the same way and some integration examples.

It was not my intent with this post to explain how Docker works and the parameters used for it, please look Docker documentation for that. Also, please reach out if you have any questions.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.