Project

General

Profile

Docker Development Environment Setup

Introduction

The Docker development environment consists of an Ubuntu 24.04 image as a base and some utility tools installed within it that are needed for development using FWD. The resulting image allows developers to use FWD immediately, without having to locally install an entire development environment. This image is useful even for experienced developers.

The image is available on the goldencode repository of Docker Hub: https://hub.docker.com/u/goldencode

Usage of the Docker Development Environment

In step 1 OS Environment Setup for Docker, you setup your development system to have a bash shell in which Docker containers can be executed. The development system is referred to as the Docker "host".

In this step, you will use the bash shell to:

  1. Download the developer Docker image.
  2. Installs scripts named dbash.sh and fbash.sh into the Docker host.

dbash.sh and fbash.sh are helper scripts to make it easy to execute various development processes. dbash.sh (Docker bash) is a command line tool to run a container with the Docker Development basedev_ubuntu_24.04 image and fbash.sh (FWD bash) is a command line tool to run a container with a FWD Docker Development fwddev_ubuntu_24.04_jdk15:latest image.

Retrieve and Position the dbash.sh (Docker bash) and fbash.sh (FWD Docker bash) scripts

To get copies of these important scripts, you must be able to access the Docker Hub. The repository is public, no login is needed.

From a bash shell, run these commands:

docker pull goldencode/basedev_ubuntu_24.04:latest
docker cp "$(docker create goldencode/basedev_ubuntu_24.04:latest):/opt/repos/dbash.sh" .
docker cp "$(docker create goldencode/basedev_ubuntu_24.04:latest):/opt/repos/fbash.sh" .

This will leave copies of dbash.sh and fbash.sh in your current directory. Copy them to a location in your path, such as $HOME/.local/bin or better /usr/local/bin which will also work on shared environments (systems in which there are multiple users), but requires sudo:

sudo cp *bash.sh /usr/local/bin
sudo chmod gou+rx /usr/local/bin/*bash.sh

Now the scripts are available for use from any location in your host's bash shell.

dbash.sh (Docker bash) Primer

dbash.sh will create a development environment which has all of the necessary utilities to access repositories and build applications.

By default, this script will open the ports for GUI clients, debugging the FWD server and monitoring (JMX). For any case where a running FWD server is not required, use --omit-ports option (same effect as including --no-gui --no-debug --no-jmx options) when running the script. This would need to be done if you want to have multiple containers running at the same time, as well as most conversion or other non-runtime usage.

Note: this script has a run limit of 10 docker containers at a time.

There are 2 ways to use dbash.sh:

  • Interactive Mode
    • If you invoke dbash.sh without parameters, you will get an "interactive" Docker session. This puts you in a bash shell inside the container.
    • From this session you can inspect the container and do anything you can normally do inside an Ubuntu system, including running multiple commands or scripts.
    • When you are done, type exit and press ENTER. This will exit the session and leave you back at the bash prompt on the Docker host.
    • You can leave the container running, and return to the host using the keystrokes CTRL-P + CTRL-Q. The container is running, and can be seen with docker ps -a. You can return to the container with docker attach <container name>. You can find the container name in the NAMES column of the docker ps -a output.
  • One-Shot Command Mode
    • When you pass -c "<command>", dbash.sh will start a "one-shot" container and will then exit after the <command> is performed.
    • The subsequent sections of this guide give detailed information about how to invoke dbash.sh using this mode. They will provide examples of commands to use for specific purposes.
    • This uses the Docker image as a kind of command line program that can be invoked on the Docker host to do some job.

fbash.sh (FWD Docker bash) Primer

fbash.sh behaves in the same manner as dbash.sh, but includes the -f (and supports the --tag=<tag>) implicitly. The container uses a pre-built FWD version inside the image and also creates a development environment which has all of the necessary utilities to access repositories and build applications.

Docker Image Details

If you want more details about what is in the image, see Docker Development Image Details.


© 2004-2026 Golden Code Development Corporation. ALL RIGHTS RESERVED.