Skip to content

Buiding a deps image

Aleksandar Acic edited this page Oct 7, 2024 · 5 revisions

The deps image is placed in: proteinpaint/container/deps

The purpose of the deps image is to speed up the build process by already having prebuilt binaries, R and R libraries, Rust dependency, etc, so when ppserver and ppfull images are built, the built is faster, because the ppfull and ppserver image are built from the deps image.

In case a new binary, R library, Rust dependency, etc is added to the project, it should be added to the deps image: proteinpaint/container/deps

To test the updated deps image locally, perform the following steps: cd /container/deps ./version.sh deps ./build.sh"

The new deps image version named "ppfull:latest" and "ppserver:latest" should be added to

proteinpaint/container/ppfull/Dockerfile

ARG VERSION=latest

#########################

# Full app update

#########################

FROM ppfull:$VERSION

and:

proteinpaint/container/server/Dockerfile

ARG VERSION=latest

#########################

# Server-only app update

#########################

FROM ppserver:$VERSION

Simulate the Docker build:

cd container
./pack.sh
./build2.sh -z server
./run.sh ppserver:NEW_VERSION # requires a serverconfig.json, read the NEW_VERSION from the list of docker images. 
./build2.sh -z full
./run.sh ppfull:NEW_VERSION # requires a serverconfig.json, read the NEW_VERSION from the list of docker images. 

It requires minimal serverconfig.json in the container dir.

Example minimal serverconfig.json in the container dir

{
   "tpmasterdir": "...",
   "port": 3000,
   "genomes": [
      {
         "name": "hg19",
         "species": "human",
         "file": "./genome/hg19.js",
         "datasets": [
            {
               "name": "ClinVar",
               "jsfile": "./dataset/clinvar.hg19.js"
            }
         ]
      },
      {
         "name": "hg38",
         "species": "human",
         "file": "./genome/hg38.js",
         "datasets": [
            {
               "name": "ClinVar",
               "jsfile": "./dataset/clinvar.hg38.js"
            }
         ]
      }
   ],
   "backend_only": false,
   "URL": "http://localhost:3456"
}

In case everything works as expected locally, release a new deps image using CI action. :

https://github.com/stjude/proteinpaint/actions/workflows/CD-publish-deps-image.yml

In case the build is successful, the deps image versions are updated inside of:

proteinpaint/container/ppfull/Dockerfile

ARG VERSION=NEW_VERSION

and:

proteinpaint/container/server/Dockerfile

ARG VERSION=NEW_VERSION

It's possible to read the new version here: github repo.

Start a new release using the github action.