Re-employable system with Ubuntu 18.04

I still could not get “very familiar” with docker/composer. I am trying :wink:

My latest challenge is to build a system, that can be re-employed for different people. I have set it up without docker, but want to move it to docker.

The system contains of:

  1. Ubuntu os (I want to use 18.04)
  2. Php 7.2
  3. Nginx web server
  4. maria db
  5. Java 8
  6. VNC or browser access
  7. Pushover system
  8. a github project should be downloaded and used with php

Description:
A licensed program in java will be uploaded to the site as xxxx.rar.
Lets call this directory upload.
When Docker starts, it should check if there is a new xxxx.rar file. If it does, it should unrar into a directory xxxx. To avoid doing that next time again, lets rename xxxx.rar to xxxx-date.rar

The user should be able to VNC to that Java program running there. I read it would be also possible to use a web system, but have not found details, VNC would be fine.
One of the first things the program requires is to login to different remote sites. All login credentials, and log files will be saved into the directory xxxx.

Events will be automatically pushed to a php 7.2 program, that inserts these data into the database.

Several web pages show the results from the database.

__

Am I right to use a docker-composer.yml file to create all these?
I would use a volume “upload” for the xxxx.rar file.
Which components do you suggest for this composer file?
At startup ( according to update-rc.d yourscriptname start 2), expand a xxxx.rar if there is a new xxxx.rar.

When an event happened, usually the java program would make a notification sound. I would use a pushover notification, so that the user gets notified on the phone.

I would appreciate if you can guide me to a similar project, where I can learn above.