This article discusses a complex task of containerizing GAMS (General Algebraic Modeling System) along with standard Python libraries in a single Docker container, due to the absence of readily available online resources and GAMS's own limited Docker documentation.
Here are the key steps we undertook to resolve the issue:
1.Preparation of Docker Base Image: We started with a base image of Ubuntu in Docker. Then, we installed necessary dependencies and Python libraries that our application required, like GCC, Git, Ninja-build, libglib2.0-0, etc.
2.Installation of Anaconda: We installed the Miniconda distribution to help manage our Python environment.
3.Installation of GAMS: Downloaded GAMS installer and ran it. Included GAMS in our environment path to ensure it was accessible for execution.
4.Integration of Application Code: Copied our application code files, including Python scripts and supporting modules, into the Docker container's workspace.
5.Provision of GAMS license: Added the GAMS license file into the appropriate directory within the Docker container.