-
Notifications
You must be signed in to change notification settings - Fork 36
Added a yml file to build the docker image #74
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
Changes from 2 commits
af49849
c2149da
863e7f7
1fa952c
7294bde
80c1663
602f17d
33acf99
dc9265d
7b2f0b8
ee2eb99
a4136f8
a6ddfb2
ea69e18
428095e
6fee6ed
1f6da96
17b98f8
12ae83f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,24 +25,27 @@ jobs: | |
run: | | ||
docker build -t tf2.4_ivim-mri_codecollection -f Docker/Dockerfile . | ||
|
||
- name: Save Docker image to a tarball | ||
- name: Save and compress Docker image | ||
run: | | ||
docker save -o tf2.4_ivim-mri_codecollection.tar tf2.4_ivim-mri_codecollection | ||
docker save tf2.4_ivim-mri_codecollection | gzip > tf2.4_ivim-mri_codecollection.tar.gz | ||
|
||
- name: Upload Docker image artifact | ||
Unique-Usman marked this conversation as resolved.
Show resolved
Hide resolved
|
||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-image | ||
path: tf2.4_ivim-mri_codecollection.tar | ||
path: tf2.4_ivim-mri_codecollection.tar.gz | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not seeing why, but the artifact is empty. I wonder if it's too big? If there's no way to save it perhaps it could be split or maybe we just forget about saving the file for now. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I will check this and verify. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @etpeterson, I think it is there, where are you checking There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @etpeterson, any suggested solution ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You could try a cleaning You could also try alpine linux base. I think it's smaller but might not work correctly. If neither of those works then let's build and test but not push. |
||
|
||
- name: Run Docker container | ||
run: | | ||
docker run --rm --name TF2.4_IVIM-MRI_CodeCollection \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should confirm that images are actually generated. Maybe not the exact values in the images, but even that the files we expect exist. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, exactly. |
||
-v ${{ github.workspace }}:/usr/src/app \ | ||
-v ${{ github.workspace }}:/usr/app/output \ | ||
tf2.4_ivim-mri_codecollection brain.nii.gz brain.bvec brain.bval | ||
tf2.4_ivim-mri_codecollection Docker/ivim_simulation.nii.gz Docker/ivim_simulation.bvec Docker/ivim_simulation.bval | ||
|
||
- name: Clean up | ||
- name: Clean up artifacts and Docker image | ||
run: | | ||
docker rmi tf2.4_ivim-mri_codecollection | ||
rm tf2.4_ivim-mri_codecollection.tar | ||
docker rmi tf2.4_ivim-mri_codecollection || true | ||
rm -f tf2.4_ivim-mri_codecollection.tar.gz | ||
rm -f ${{ github.workspace }}/f.nii.gz | ||
rm -f ${{ github.workspace }}/dp.nii.gz | ||
rm -f ${{ github.workspace }}/d.nii.gz |
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is the purpose of this file? It looks like it generates an image but I don't see it being used for anything. I was expecting to see the simulated image and associated files generated by this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is the code I used for generating the signal which I was using for the docker. I did not make use of it because I already generated the images. I will restructured it to generate the images on the fly thereby making use of it in the build process. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import numpy as np | ||
import nibabel as nib | ||
from utilities.data_simulation.GenerateData import GenerateData | ||
|
||
def save_nii(data, filename='ivim_image.nii.gz'): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There's already a There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, sure. |
||
""" | ||
Save the data as a NIfTI file (.nii.gz) | ||
""" | ||
nii_img = nib.Nifti1Image(data, affine=np.eye(4)) | ||
nib.save(nii_img, filename) | ||
|
||
# Set random seed for reproducibility | ||
np.random.seed(42) | ||
|
||
# Create GenerateData instance | ||
gd = GenerateData() | ||
|
||
# Generate random input data | ||
shape = (10, 10, 5) | ||
f_in = np.random.uniform(low=0, high=1, size=shape) | ||
D_in = np.random.uniform(low=0, high=1e-3, size=shape) | ||
Dp_in = np.random.uniform(low=0, high=1e-1, size=shape) | ||
S0 = 1000 # Setting a constant S0 for simplicity | ||
bvals = np.array([0, 50, 100, 500, 1000]) | ||
bvals_reshaped = np.broadcast_to(bvals, shape) | ||
|
||
# Generate IVIM signal | ||
images = gd.ivim_signal(D_in, Dp_in, f_in, S0, bvals_reshaped) | ||
|
||
# Save the generated image as a NIfTI file | ||
save_nii(images) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
0 50 100 500 1000 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
1 0 0 | ||
0 1 0 | ||
0 0 1 |
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This and the associated bval and bvec files are inside the docker folder, so they're getting added to the docker image. We don't want that. Also, shouldn't they be generated on the fly rather than be pre-generated? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I will generate it on the fly, I thought it makes sense having it constant. |
Uh oh!
There was an error while loading. Please reload this page.