Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup and centralize ngen-related images #408

Conversation

robertbartel
Copy link
Contributor

Combining the builds for ngen, ngen-cal, and ngen partitioning into a single Dockerfile and build context. Differentiating them through targeted Docker build stages. Updating the scripts used by the images to combine parts of reusable logic, and to make other general improvements.

Depends on #405 and should not be merged until after that.

@robertbartel robertbartel added enhancement New feature or request maas MaaS Workstream labels Aug 2, 2023
Move ngen entrypoint args to use of explicit flags and to use of single
composite config dataset arg/name/directory.
Updating entrypoint.sh to copy various job-related configs into output
dataset for record keeping and reproducibility.
Updating Dockerfile to give name to the build stage used as main "ngen"
worker image for model exec jobs, and updating docker-build.yml build
setup accordingly to explicitly target this stage.
Moving reusable functions and logic not (yet) in functions from ngen
entrypoint.sh to functions within new funcs.sh, and sourcing the new
file from the entrypoint.
Moving entrypoint script (and renaming) for partitioner image to ngen
directory/build context in preparation for working from the same
Dockerfile.
Updating rocky-ngen-deps build stage in ngen Dockerfile so that Boost
root directory (after downloaded Boost headers are untarred) is chowned
to USER value, so the directory can be deleted later.
Fixing function to actually load the secrets for ACCESS and SECRET to
variables.
Creating custom build stage for use as the ngen-partitioner image
target.
Updating docker-build.yml to use context and Dockerfile from main ngen
image and specify new custom target set up for partitioner image.
Removing old stand-alone partitioner Dockerfile after moving to stage
within main ngen Dockerfile.
Adjusting entrypoint setup to reduce layers and use standardized name
for entrypoint script once it is inside the image/container.
Adjusting entrypoint setup to use standardized name for entrypoint
script once it is inside the image/container.
Moving and renaming entrypoint script for ngen_cal image to be within
context directory for ngen image build, in preparation for utilizing
a stage within the main Dockerfile for the calibration image.
Fixing logic in script for how things were handled when running a
serial execution.
Fixing issue in funcs.sh related to when to check for a partition config
dataset directory, which previously would only happen if the MPI node
count was greater than 1 (i.e., while an MPI job running all on a single
node would still expect the partition config).
Updating main ngen Dockerfile with new build stage for use as target for
ngen_cal worker image.
@robertbartel robertbartel force-pushed the f/update_ngen_docker/cleanup_and_centralize branch from 1afeb5d to 498466a Compare August 28, 2023 13:21
@robertbartel robertbartel marked this pull request as ready for review August 28, 2023 13:22
Copy link
Member

@aaraney aaraney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! Thanks, @robertbartel!

@robertbartel robertbartel merged commit c69c5bc into NOAA-OWP:master Sep 13, 2023
1 check failed
@robertbartel robertbartel deleted the f/update_ngen_docker/cleanup_and_centralize branch September 13, 2023 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request maas MaaS Workstream
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants