Move along

Sorry, internet - there’s probably nothing of interest here for you to see. This is just me trying to remember and recall all of the steps involved in building the container for the Future Gateway API Server.

What’s that ?

Future Gateway is a set of APIs and tools which allows you to develop a web-based science gateway for distributed computing infratructure. It consists of a web-facing API server, a tracking database and a set of libraries used to invoke SAGA. The SAGA bit is currently implemented in java - specifically jSAGA (but don’t ask, it’s complicated) - so we need a tomcat container to handle the actual actions coming from the API server. More about that later…

Ansible Container is not quite there yet

So, the original plan was to write something nice and easy with Ansible Container - I’m already using Ansible for basically everything else and I have actually written some of the roles already. So, I was looking forward to a simple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
---
version: "1"
services:
  api-server:
    image: python:2.7
    ports:
      - "8888:8888"
    working_dir: '/tmp/apiserver'
    command: ['python','fgapipserver.py']
  gridengine:
    image: mysql:latest
    ports:
      - "8080:8080"
     command: ['java']
   db:
     image: ubuntu:trusty
     ports:
       - "3306:3306"
     command: ['mysql']

Except nooooo - it’s way too complicated to pull in variables and roles into the ansible-container bits. So, we’re going to make independent Dockerfiles, and then throw that :poop: together with Docker Compose.

The containers

Here are some thoughts and notes on the actual containers.

API Server

This container basically has to run python, since the API Server is implemented as a flask application… for now; there are rumours that it will be re-implemented as a Java application. Hm… :unamused:.

This shouldn’t be too hard - just need to add the code itself and the relevant python dependencies, open the correct ports and set up the entry point.

… brief interlude …

Ok, the API Server has probably been built ok.