From 5e470cc512450e904aebd9d62a56296c2dd0b207 Mon Sep 17 00:00:00 2001 From: JoelTrain Date: Thu, 22 Jul 2021 20:46:56 -0500 Subject: [PATCH 1/6] point to the dumb-init in the project blue bucket --- hardening_manifest.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hardening_manifest.yaml b/hardening_manifest.yaml index 80ebcaf..d8e7aff 100644 --- a/hardening_manifest.yaml +++ b/hardening_manifest.yaml @@ -49,7 +49,7 @@ resources: id: beast region: us-east-2 filename: dumb-init - url: s3://beast-code.core/dumb-init + url: s3://beast-code.project-blue/dumb-init validation: type: sha256 value: 37f2c1f0372a45554f1b89924fbb134fc24c3756efaedf11e07f599494e0eff9 -- GitLab From eb025a27a6631084b2cc1a226629012f1d233e3a Mon Sep 17 00:00:00 2001 From: JoelTrain Date: Thu, 22 Jul 2021 20:47:17 -0500 Subject: [PATCH 2/6] added convenient docker compose file for mounting platform volume data --- docker-compose.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9d95957 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3' + +services: + project-blue: + image: registry1.dso.mil/ironbank/beast-code/project-blue/base-image:0.1.0 + volumes: + - ./platforms:/project-blue/workspaces/ + ports: + - "8100:5000" + restart: unless-stopped + environment: + ASPNETCORE_ENVIRONMENT: Production + ASPNETCORE_URLS: http://+:5000 -- GitLab From 2ff779315d2b9bac38f45e2fde21ec1c644ac719 Mon Sep 17 00:00:00 2001 From: JoelTrain Date: Thu, 22 Jul 2021 20:47:29 -0500 Subject: [PATCH 3/6] linter fixes for readme --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 766e649..05ce25e 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,10 @@ The Project Blue application is developed by Beast Code to support the qualification and maintenance performance and logistical pipelines of military personnel, in accordance with DOD's requirements. Project Blue currently supports Columbia, Ohio and Virginia class submarines. -The core functionalities of Project Blue are collaboration, planning, and +The core functionalities of Project Blue are collaboration, planning, and maintenance optimization tools for submarine refit periods along with Master Job File (MJF) creation and retrieval aids intended for use by -Trident Refit Facilities. +Trident Refit Facilities. All features of Project Blue are backed by Beast Core digital twins. Each twin is comprised of a 3D representation of the platform's systems (e.g., fuel, @@ -25,7 +25,7 @@ Project Blue is web-based technology that can be deployed to an existing server infrastructure and run on PCs, laptops and other assets connected to the network. The software can also operate on a tablet or mobile device (disconnected from the network) allowing users to utilize the digital twin -anytime, anywhere. Additionally, Project Blue utilizes the keyboard and mouse +anytime, anywhere. Additionally, Project Blue utilizes the keyboard and mouse for an intuitive user experience. Project Blue licensing and pricing is flexible and supports various organizational requirements from a single user up to large scale enterprise @@ -38,7 +38,6 @@ Email: info@Beast-Code.com Phone: (850) 702-3600 Website: https://www.beast-code.com/ - ## Container requirements **Software requirements**: Google Chrome web browser (client) @@ -46,19 +45,21 @@ Website: https://www.beast-code.com/ **Memory requirements**: The minimum memory requirement is 2GBs RAM. Recommended: 8-16GB RAM **CPU requirements**: + - Client: Recommended minimum 2.4GHz Intel Core i5-6300U or equivalent - Server: 0.5 core request, 2.0 core limit in kubernetes cluster recommended **Storage requirements**: + - Application: none - Digital twin: 10-50GB depending on digital twin **NOTE**: The Project Blue image does NOT come bundled with a digital twin and will not be fully functional as a standalone application. - ## Container configuration - `PORT` - - Port which will serve http traffic (default: `5000`) + - Port which will serve http traffic (default: `5000`) + - `WORKSPACE_PATH` - - Path where digital twins are mounted (default: `/project-blue/workspaces`) + - Path where digital twins are mounted (default: `/project-blue/workspaces`) -- GitLab From 25aa88586a9679283dc930390e80aac5bdfb8622 Mon Sep 17 00:00:00 2001 From: JoelTrain Date: Thu, 22 Jul 2021 20:47:43 -0500 Subject: [PATCH 4/6] added a yum update to dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 1f316b1..3055c7e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,7 @@ COPY \ RUN groupadd --gid $GID $GROUPNAME && \ useradd --uid $UID --gid $GID $USERNAME && \ + yum update -y && \ yum install -y libicu curl && \ yum clean all && \ rm -rf /var/cache/dnf && \ -- GitLab From 467449e7c2a625738dd10f22af411fe0c2951ea9 Mon Sep 17 00:00:00 2001 From: JoelTrain Date: Thu, 22 Jul 2021 21:02:13 -0500 Subject: [PATCH 5/6] updated readme --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index 05ce25e..3e9a3d9 100644 --- a/README.md +++ b/README.md @@ -63,3 +63,27 @@ Website: https://www.beast-code.com/ - `WORKSPACE_PATH` - Path where digital twins are mounted (default: `/project-blue/workspaces`) + +## How to run this container + +Once Docker is running use this command +`docker run registry1.dso.mil/ironbank/beast-code/project-blue/base-image` + +Currently the only platform data that is compatible with this container by default is the uss-never-sleeps and it must be mounted at +`/project-blue/workspaces/uss-never-sleeps` inside the container at runtime. + +In order to use other platform data (also known as workspaces) with Project Blue +the `Workspace.DefaultWorkspace` field in `/project-blue/appsettings.Production.json` must be changed to match the folder name containing the platform data. + +## Troubleshooting tips + +If you are having trouble starting the container you can debug into it by altering the entrypoint like this. + +`docker run -it --rm --name debug-project-blue --entrypoint=sh registry1.dso.mil/ironbank/beast-code/project-blue/base-image` + +The server can be launched from the account `benjo` in the default working directory `/project-blue` using the executable `/project-blue/ProjectBlueServer` + +If the executeable fails to launch, try running `ldd /project-blue/ProjectBlueServer` and verify that all of the necessary runtime dynamically linked libraries (DLLs) are present in the image. + +We use `/usr/local/bin/dumb-init` as the default entrypoint in order to forward normal signals to and from the ProjectBlueServer executeable such as SIGTERM and SIGINT. +See https://github.com/Yelp/dumb-init for more information. -- GitLab From 17210cc3f25d5b518b6db68dea193208732b4b2a Mon Sep 17 00:00:00 2001 From: JoelTrain Date: Thu, 22 Jul 2021 21:42:03 -0500 Subject: [PATCH 6/6] updated hardening manifest to point to new build --- hardening_manifest.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hardening_manifest.yaml b/hardening_manifest.yaml index d8e7aff..3b0100f 100644 --- a/hardening_manifest.yaml +++ b/hardening_manifest.yaml @@ -8,7 +8,7 @@ name: "beast-code/project-blue/base-image" # The most specific version should be the first tag and will be shown # on ironbank.dsop.io tags: - - "0.1.0" + - "0.2.0" - "latest" # Build args passed to Dockerfile ARGs @@ -27,7 +27,7 @@ labels: org.opencontainers.image.url: "https://beast-code.com/" ## Name of the distributing entity, organization or individual org.opencontainers.image.vendor: "Beast Code, LLC" - org.opencontainers.image.version: "0.1.0" + org.opencontainers.image.version: "0.2.0" ## Keywords to help with search (ex. "cicd,gitops,golang") mil.dso.ironbank.image.keywords: "digital twin, 3D, Refit Support, Master Job File" ## This value can be "opensource" or "commercial" @@ -41,10 +41,10 @@ resources: id: beast region: us-east-2 filename: project-blue.tar.gz - url: s3://beast-code.project-blue/project-blue.tar.gz + url: s3://beast-code.project-blue/cff7c4cf03a95530b62ef0e7928e431fae9f5a23/project-blue.tar.gz validation: type: sha256 - value: 4dbebbba662a4452332d4b7d1368965267cc4374e6284e95bc295cbe09051a95 + value: 9a826fedce11b3ce2a6a9318ed24ef9ef4b2e2e9990486144d3fba16e9b2fd99 - auth: id: beast region: us-east-2 -- GitLab