-
Notifications
You must be signed in to change notification settings - Fork 3
Improvements to production docker images: arm compatibility; run integration tests #1420
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
Conversation
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very minor comments.
- {build_opt: 'prod6-baseline', extra_def: ''} | ||
avx_instruction: ['no_opt'] | ||
container: | ||
image: ghcr.io/gammasim/simtools-prod-opt-${{ matrix.version.simtel_version }}-corsika-${{ matrix.version.corsika_version }}-bernlohr-${{ matrix.version.bernlohr_version }}-${{ matrix.production.build_opt }}-${{ matrix.hadronic_model }}-${{ matrix.avx_instruction }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the opt
in prod-opt
here?
Reading further, I understand it comes from Docker image name. Are they still separate and the opt
is needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed the opt
. Good point.
|
||
- name: Set sim_telarray path | ||
run: | | ||
echo "PATH=\$PATH:/usr/bin:/usr/local/bin:$SIMTOOLS_SIMTEL_PATH" >> "$GITHUB_ENV" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you really need to explicitly set /usr/bin:/usr/local/bin
? There's no harm in it of course, but if it's not needed I would remove it (who knows, maybe in a future OS it will change).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, needed - running the workflow without it will give you:
OCI runtime exec failed: exec failed: unable to start container process: exec: "sh": executable file not found in $PATH: unknown
docker/Dockerfile-prod-opt
Outdated
COPY --from=build_image /workdir/sim_telarray/ /workdir/sim_telarray/ | ||
|
||
RUN microdnf update -y && microdnf install -y \ | ||
bc findutils gcc-c++ git gsl-devel gcc-fortran libgfortran \ | ||
procps python3.11-pip zstd && \ | ||
procps python3.12-devel zstd && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should the python version be an argument that updates when we updated the supported versions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, added.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Thanks @orelgueta for the review. I tried to address them, let me know if there is anything else. |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies for the delay, all good now!
Thanks a lot @orelgueta - and no worries, no other PR depends directly on this work. |
Two improvements regarding the production images:
avx2
flag for non-optimized images to allow to run them on arm-based CPUs (still need to usepodman run --arch amd64 ...
to execute)Note that this is in some sense a duplication of what has been / will be added in the SimPipe gitlab repository. However, for it is easier to develop these steps here.
Minor changes:
noOpt
tono-opt
.image
file in one single line.