Skip to content

Submission Project Docker Microcredential #4

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

Open
wants to merge 29 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5f1c77b
mark first deliverable in readme.md as done
rabuono Apr 8, 2025
1fcd3e6
add content to Dockerfile.train including commands
rabuono Apr 8, 2025
f6b0199
add Project_steps.md to document steps in the project
rabuono Apr 8, 2025
a6bab6f
Remove duplicate file
rabuono Apr 8, 2025
c2a1fef
add Project_steps.md clarifications and item on training container
rabuono Apr 8, 2025
2717bcf
Merge pull request #1 from rabuono/containerize_training
rabuono Apr 8, 2025
87e1c89
reorder Dockerfile.infer add command commends and add steps to Projec…
rabuono Apr 8, 2025
e94c71e
Merge pull request #2 from rabuono/containerize_serve
rabuono Apr 8, 2025
31575f3
Add completed deliverables to README.md
rabuono Apr 8, 2025
f476f08
add steps to build and run to Project_steps.md and fix typo in name o…
rabuono Apr 8, 2025
ac974c9
update README.md with steps completed
rabuono Apr 8, 2025
5aaaf5a
add dockerhub commands to Project_steps.md and complete step in READM…
rabuono Apr 8, 2025
b311450
complete step in README.md
rabuono Apr 8, 2025
dd7042c
add docker images move to Docker Hub to Project_steps.md
rabuono Apr 8, 2025
c27b819
add instructions for multi-platform images to Project_steps.md
rabuono Apr 8, 2025
f07e24a
style fixes in Project_steps.md
rabuono Apr 8, 2025
23cf262
fix multi-platform command for docker build in Project_steps.md
rabuono Apr 9, 2025
8d489db
add scripts for build and run apptainer images
rabuono Apr 9, 2025
2519d9d
add project steps and image_build.sh for apptainer build
rabuono Apr 22, 2025
103d21e
add clarification to project steps
rabuono Apr 22, 2025
135c858
add log files for apptainer build
rabuono Apr 22, 2025
1623733
Delete run_apptainer.sh
rabuono Apr 22, 2025
f12914b
add script for building images in ugent and logs of job run at ugent
rabuono Apr 22, 2025
83a3d7f
deletion conflict solved
rabuono Apr 22, 2025
3a7be7c
add completed steps to README.md and add explanation on use of HPC Ug…
rabuono Apr 22, 2025
598ba16
typo fix in Project_steps.md
rabuono Apr 22, 2025
764ec8a
Merge pull request #3 from rabuono/apptainer_logs
rabuono Apr 22, 2025
e9f8dc1
add clarification on image_build.sh usage to Project_steps.md
rabuono Apr 22, 2025
195c1ef
add clarification on building for multiple platforms to Project_steps.md
rabuono Apr 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions Dockerfile.infer
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
COPY server.py .
FROM python:3.9-slim
CMD ["python", "server.py"]
RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "server.py"]
EXPOSE 8080

# Reorder of instructions

# To build:
# docker build -t sklearn_serve:v1 -f Dockerfile.infer .

# run command:
# docker run --rm -p 8080:8080/tcp -v ./app/models:/app/models sklearn_serve:v1
24 changes: 17 additions & 7 deletions Dockerfile.train
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
FROM <base imagae>
FROM python:3.9-slim

# TODO: Set a working directory
WORKDIR /app

# TODO: Copy the requirements.txt file to the working directory
COPY requirements.txt .

# TODO: Install the Python dependencies
COPY train.py .

# TODO: Copy the training script (train.py) to the working directory
RUN pip install --no-cache-dir -r requirements.txt

# TODO: Run the training script that generates the model
CMD [...]
# Create the models directory with higher permissions
RUN mkdir -p /app/models && chmod 777 /app/models
Copy link
Contributor

Choose a reason for hiding this comment

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

Could be omitted

Copy link
Author

Choose a reason for hiding this comment

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

👍
It was an overzealous directory creation


EXPOSE 8080
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a particular reason of defining a port?

Copy link
Author

Choose a reason for hiding this comment

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

I missed that.
No, there is no need to expose that port there, as the next step does not rely on network communication to exchange the necessary data.
Thanks for spotting it.

Copy link
Author

Choose a reason for hiding this comment

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

Suggested change
EXPOSE 8080


CMD ["python", "train.py"]

# build command:
# docker build -t sklearn_train:v1 -f Dockerfile.train .

# run command:
# docker run --rm -p 8080:8080/tcp -v ./app/models:/app/models sklearn_train:v1
Copy link
Author

Choose a reason for hiding this comment

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

Suggested change
# docker run --rm -p 8080:8080/tcp -v ./app/models:/app/models sklearn_train:v1
# docker run --rm -v ./app/models:/app/models sklearn_train:v1

As no port exposing was actually necessary

64 changes: 64 additions & 0 deletions Project_steps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Project Docker Microcredential

## Git

The original repository was forked and cloned.
Changes to README.md are performed directly on the main branch.
Changes to Dockerfiles are performed in their own branch.

## Containerize training the machine learning model

Original Dockerfile.train worked on in branch `containerize_train`.
Completed TO DOs in the file and added commands to Dockerfile.train as comments.

## Containerize serving of the machine learning model

Original Dockerfile.infer worked on in branch `containerize_serve`.
Reorganized the Dockerfile.infer and added commands to build and run as comments.

## Train and run the machine learning model using Docker

Building image and running container commands are in Dockerfile.train
It results in the `iris_model.pkl` file to be used by the next step.

## Run the Docker container serving the machine learning model

Building image and running container commands are in Dockerfile.infer
The message `Welcome to Docker Lab` can be found at http://localhost:8080

## Store the Docker images on your personal account on Docker Hub
- Login with
`docker login`
- Tagging images
`docker tag sklearn_train:v1 rabuono/skelearn_train:v1`
`docker tag sklearn_serve:v1 rabuono/skelearn_serve:v1`
- Pushing images
`docker push rabuono/skelearn_train:v1`
`docker push rabuono/skelearn_serve:v1`

## Building docker for multiple platforms

Running the following command to build v2 for the images, so that they can support multiple platforms:
`docker buildx build --platform linux/amd64,linux/arm64 -t mydockerimage:latest .`

Leading to the two following commands, so that the resulting images can be used in linux/amd64 and linux/arm64 based platforms:
`docker buildx build --platform linux/amd64,linux/arm64 -t sklearn_train:v2 -f Dockerfile.train .`
`docker buildx build --platform linux/amd64,linux/arm64 -t sklearn_serve:v2 -f Dockerfile.infer .`

## Store multi-platform Docker images on your personal account on Docker Hub
- Login with
`docker login`
- Tagging images
`docker tag sklearn_train:v2 rabuono/skelearn_train:v2`
`docker tag sklearn_serve:v2 rabuono/skelearn_serve:v2`
- Pushing images
`docker push rabuono/skelearn_train:v2`
`docker push rabuono/skelearn_serve:v2`

## Building apptainer images
- Run `image_build.sh` to build by downloading from docker hub
- Produces two log files in addition to the slurm.out file
- Alternative `image_build_ugent.sh` file provided to building in HPC Ugent, that leads to no `--fakeroot` related `xattrs` warnings. Corresponding folder for HPC Ugent logs is also provided.
- The script requires that the path is given in the command to run the script. For example: `sbatch image_build.sh </path/to/data>`, where `<path/to/data>` is the path to where the images should be built.


20 changes: 10 additions & 10 deletions README.md
Copy link
Contributor

Choose a reason for hiding this comment

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

@rabuono what is the difference between the two shell scripts for the two HPC systems which produces the xattr warning?

(base) albot@Alexanders-MacBook-Pro project_docker_microcredential % diff image_build.sh image_build_ugent.sh
2,3c2,4
< #SBATCH --job-name=apptainer_build
< #SBATCH --partition=debug_28C_56T_750GB
---
>
> #SBATCH --job-name=job_submission
> #SBATCH --partition=donphan
5c6
< #SBATCH --time=01:00:00
---
> #SBATCH --time=00:30:00

Copy link
Author

Choose a reason for hiding this comment

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

Hey!
The difference is basically on the sbatch statements.
While I have not dug deeper into it, I suspect that the xattr warnings come from differences in deployment of the two HPC systems.

Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ In this project, you will train, run and serve a machine learning model using Do

## Deliverables

- [ ] Clone this repository to your personal github account
- [ ] Containerize training the machine learning model
- [ ] Containerize serving of the machine learning model
- [ ] Train and run the machine learning model using Docker
- [ ] Run the Docker container serving the machine learning model
- [ ] Store the Docker images on your personal account on Docker Hub
- [ ] Provide the resulting Dockerfiles in GitHub
- [ ] Build an Apptainer image on a HPC of your choice
- [ ] Provide the logs of the slurm job in GitHub
- [ ] Document the steps in a text document in GitHub
- [X] Clone this repository to your personal github account
- [X] Containerize training the machine learning model
- [X] Containerize serving of the machine learning model
- [X] Train and run the machine learning model using Docker
- [X] Run the Docker container serving the machine learning model
- [X] Store the Docker images on your personal account on Docker Hub
- [X] Provide the resulting Dockerfiles in GitHub
- [X] Build an Apptainer image on a HPC of your choice
- [X] Provide the logs of the slurm job in GitHub
- [X] Document the steps in a text document in GitHub

## Proposed steps - containerize and run training the machine learning model

Expand Down
Binary file added app/models/iris_model.pkl
Binary file not shown.
25 changes: 25 additions & 0 deletions image_build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash
#SBATCH --job-name=apptainer_build
#SBATCH --partition=debug_28C_56T_750GB
#SBATCH --mem=8G
#SBATCH --time=01:00:00

# Define variables
TRAIN_IMG="docker://rabuono/skelearn_train:v2"
SERVE_IMG="docker://rabuono/skelearn_serve:v2"
#Ask for path in command
SCRIPT_DIR=$1
# Define output folder for logs
LOG_DIR="$SCRIPT_DIR/logs"

# Create log directory if it doesn't exist
mkdir -p $LOG_DIR

# Pull Docker images using Apptainer and save logs
echo "Building training image..."
apptainer build --fakeroot model-train.sif $TRAIN_IMG > $LOG_DIR/train_image_build.log 2>&1
Copy link
Contributor

Choose a reason for hiding this comment

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

logs can also be defined via SBATCH statements

Copy link
Author

@rabuono rabuono Apr 23, 2025

Choose a reason for hiding this comment

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

Thanks!
Indeed.
The attempt was to combine them in more specifically named log files for future consumption.


echo "Building serving image..."
apptainer build --fakeroot model-serve.sif $SERVE_IMG > $LOG_DIR/serve_image_build.log 2>&1

echo 'Job finished'
26 changes: 26 additions & 0 deletions image_build_ugent.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/bash

#SBATCH --job-name=job_submission
#SBATCH --partition=donphan
#SBATCH --mem=8G
#SBATCH --time=00:30:00

# Define variables
TRAIN_IMG="docker://rabuono/skelearn_train:v2"
SERVE_IMG="docker://rabuono/skelearn_serve:v2"
#Ask for path in command
SCRIPT_DIR=$1
# Define output folder for logs
LOG_DIR="$SCRIPT_DIR/logs"

# Create log directory if it doesn't exist
mkdir -p $LOG_DIR

# Pull Docker images using Apptainer and save logs
echo "Building training image..."
apptainer build --fakeroot model-train.sif $TRAIN_IMG > $LOG_DIR/train_image_build.log 2>&1

echo "Building serving image..."
apptainer build --fakeroot model-serve.sif $SERVE_IMG > $LOG_DIR/serve_image_build.log 2>&1

echo 'Job finished'
21 changes: 21 additions & 0 deletions logs_for_apptainer/logs_from_hpc_ugent/serve_image_build.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
INFO: Starting build...
Copying blob sha256:184a776449911524150de3a331d4c3eafe528bd2fc50c9b97326bf3fb8e1d4f6
Copying blob sha256:8a628cdd7ccc83e90e5a95888fcb0ec24b991141176c515ad101f12d6433eb96
Copying blob sha256:12593af8cbd21b1576220a9427a4348a814d745e8be2f1e0c291feeccef9435f
Copying blob sha256:1a2929da74e607ea6ef07742bf12f320bf1a3dbae71e551ac6ca616497bcac33
Copying blob sha256:97e7d544f1102f53e73772843cd535a15024771fd751e3e7de7ac5601d82807e
Copying blob sha256:3530cc4bfea2e74a5ef8726ad907b4fdf3b12cc8ae116b0c15f283d5e831958c
Copying blob sha256:611c532b1d06dca8d109405f17c9d6dad162181677ba59bbb30410597614d4f4
Copying blob sha256:4c4dc7d981d4dbdbf79828bfbd458638c207ff80825abd8fc5d84b0e4606c6e7
Copying config sha256:a563cebff51e0fee3b1963aec0a25c4f7a02b2d1c5fd36bbe8074bed79a48b1a
Writing manifest to image destination
2025/04/22 15:43:58 info unpack layer: sha256:8a628cdd7ccc83e90e5a95888fcb0ec24b991141176c515ad101f12d6433eb96
2025/04/22 15:43:59 info unpack layer: sha256:12593af8cbd21b1576220a9427a4348a814d745e8be2f1e0c291feeccef9435f
2025/04/22 15:44:00 info unpack layer: sha256:1a2929da74e607ea6ef07742bf12f320bf1a3dbae71e551ac6ca616497bcac33
2025/04/22 15:44:00 info unpack layer: sha256:97e7d544f1102f53e73772843cd535a15024771fd751e3e7de7ac5601d82807e
2025/04/22 15:44:00 info unpack layer: sha256:3530cc4bfea2e74a5ef8726ad907b4fdf3b12cc8ae116b0c15f283d5e831958c
2025/04/22 15:44:00 info unpack layer: sha256:184a776449911524150de3a331d4c3eafe528bd2fc50c9b97326bf3fb8e1d4f6
2025/04/22 15:44:00 info unpack layer: sha256:611c532b1d06dca8d109405f17c9d6dad162181677ba59bbb30410597614d4f4
2025/04/22 15:44:00 info unpack layer: sha256:4c4dc7d981d4dbdbf79828bfbd458638c207ff80825abd8fc5d84b0e4606c6e7
INFO: Creating SIF file...
INFO: Build complete: model-serve.sif
3 changes: 3 additions & 0 deletions logs_for_apptainer/logs_from_hpc_ugent/slurm-20166805.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Building training image...
Building serving image...
Job finished
23 changes: 23 additions & 0 deletions logs_for_apptainer/logs_from_hpc_ugent/train_image_build.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
INFO: Starting build...
Copying blob sha256:184a776449911524150de3a331d4c3eafe528bd2fc50c9b97326bf3fb8e1d4f6
Copying blob sha256:8a628cdd7ccc83e90e5a95888fcb0ec24b991141176c515ad101f12d6433eb96
Copying blob sha256:12593af8cbd21b1576220a9427a4348a814d745e8be2f1e0c291feeccef9435f
Copying blob sha256:1a2929da74e607ea6ef07742bf12f320bf1a3dbae71e551ac6ca616497bcac33
Copying blob sha256:97e7d544f1102f53e73772843cd535a15024771fd751e3e7de7ac5601d82807e
Copying blob sha256:3530cc4bfea2e74a5ef8726ad907b4fdf3b12cc8ae116b0c15f283d5e831958c
Copying blob sha256:d55d33e89e5c869ebd82678fadd8aaee2a674df9727c748afb101c0d1c89f5bb
Copying blob sha256:bba90a10b1ce867f2561dd0a276e81ebb6ca207261a205c309ac9b440b3755a6
Copying blob sha256:fe39c22c9e0108a3151f0fa0e56bff032778e71642414a5d88eb18e9f2234ed7
Copying config sha256:cfd1b91292e1dfe644d5223e80cb610b96187c2f609fd518cc871db64f78e144
Writing manifest to image destination
2025/04/22 15:42:56 info unpack layer: sha256:8a628cdd7ccc83e90e5a95888fcb0ec24b991141176c515ad101f12d6433eb96
2025/04/22 15:42:57 info unpack layer: sha256:12593af8cbd21b1576220a9427a4348a814d745e8be2f1e0c291feeccef9435f
2025/04/22 15:42:57 info unpack layer: sha256:1a2929da74e607ea6ef07742bf12f320bf1a3dbae71e551ac6ca616497bcac33
2025/04/22 15:42:58 info unpack layer: sha256:97e7d544f1102f53e73772843cd535a15024771fd751e3e7de7ac5601d82807e
2025/04/22 15:42:58 info unpack layer: sha256:3530cc4bfea2e74a5ef8726ad907b4fdf3b12cc8ae116b0c15f283d5e831958c
2025/04/22 15:42:58 info unpack layer: sha256:184a776449911524150de3a331d4c3eafe528bd2fc50c9b97326bf3fb8e1d4f6
2025/04/22 15:42:58 info unpack layer: sha256:d55d33e89e5c869ebd82678fadd8aaee2a674df9727c748afb101c0d1c89f5bb
2025/04/22 15:42:58 info unpack layer: sha256:bba90a10b1ce867f2561dd0a276e81ebb6ca207261a205c309ac9b440b3755a6
2025/04/22 15:43:01 info unpack layer: sha256:fe39c22c9e0108a3151f0fa0e56bff032778e71642414a5d88eb18e9f2234ed7
INFO: Creating SIF file...
INFO: Build complete: model-train.sif
29 changes: 29 additions & 0 deletions logs_for_apptainer/serve_image_build.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
INFO: User not listed in /etc/subuid, trying root-mapped namespace
INFO: The %post section will be run under the fakeroot command
INFO: Starting build...
Copying blob sha256:8a628cdd7ccc83e90e5a95888fcb0ec24b991141176c515ad101f12d6433eb96
Copying blob sha256:1a2929da74e607ea6ef07742bf12f320bf1a3dbae71e551ac6ca616497bcac33
Copying blob sha256:184a776449911524150de3a331d4c3eafe528bd2fc50c9b97326bf3fb8e1d4f6
Copying blob sha256:12593af8cbd21b1576220a9427a4348a814d745e8be2f1e0c291feeccef9435f
Copying blob sha256:97e7d544f1102f53e73772843cd535a15024771fd751e3e7de7ac5601d82807e
Copying blob sha256:611c532b1d06dca8d109405f17c9d6dad162181677ba59bbb30410597614d4f4
Copying blob sha256:3530cc4bfea2e74a5ef8726ad907b4fdf3b12cc8ae116b0c15f283d5e831958c
Copying blob sha256:4c4dc7d981d4dbdbf79828bfbd458638c207ff80825abd8fc5d84b0e4606c6e7
Copying config sha256:a563cebff51e0fee3b1963aec0a25c4f7a02b2d1c5fd36bbe8074bed79a48b1a
Writing manifest to image destination
2025/04/22 13:42:29 info unpack layer: sha256:8a628cdd7ccc83e90e5a95888fcb0ec24b991141176c515ad101f12d6433eb96
2025/04/22 13:42:30 warn xattr{etc/gshadow} ignoring ENOTSUP on setxattr "user.rootlesscontainers"
2025/04/22 13:42:30 warn xattr{/data/tmp/81753/build-temp-2370069137/rootfs/etc/gshadow} destination filesystem does not support xattrs, further warnings will be suppressed
2025/04/22 13:42:51 info unpack layer: sha256:12593af8cbd21b1576220a9427a4348a814d745e8be2f1e0c291feeccef9435f
2025/04/22 13:42:53 warn xattr{var/cache/apt/archives/partial} ignoring ENOTSUP on setxattr "user.rootlesscontainers"
2025/04/22 13:42:53 warn xattr{/data/tmp/81753/build-temp-2370069137/rootfs/var/cache/apt/archives/partial} destination filesystem does not support xattrs, further warnings will be suppressed
2025/04/22 13:42:53 info unpack layer: sha256:1a2929da74e607ea6ef07742bf12f320bf1a3dbae71e551ac6ca616497bcac33
2025/04/22 13:43:05 warn xattr{var/log/apt/term.log} ignoring ENOTSUP on setxattr "user.rootlesscontainers"
2025/04/22 13:43:05 warn xattr{/data/tmp/81753/build-temp-2370069137/rootfs/var/log/apt/term.log} destination filesystem does not support xattrs, further warnings will be suppressed
2025/04/22 13:43:05 info unpack layer: sha256:97e7d544f1102f53e73772843cd535a15024771fd751e3e7de7ac5601d82807e
2025/04/22 13:43:05 info unpack layer: sha256:3530cc4bfea2e74a5ef8726ad907b4fdf3b12cc8ae116b0c15f283d5e831958c
2025/04/22 13:43:05 info unpack layer: sha256:184a776449911524150de3a331d4c3eafe528bd2fc50c9b97326bf3fb8e1d4f6
2025/04/22 13:43:05 info unpack layer: sha256:611c532b1d06dca8d109405f17c9d6dad162181677ba59bbb30410597614d4f4
2025/04/22 13:43:05 info unpack layer: sha256:4c4dc7d981d4dbdbf79828bfbd458638c207ff80825abd8fc5d84b0e4606c6e7
INFO: Creating SIF file...
INFO: Build complete: model-serve.sif
3 changes: 3 additions & 0 deletions logs_for_apptainer/slurm-81753.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Building training image...
Building serving image...
Job finished
31 changes: 31 additions & 0 deletions logs_for_apptainer/train_image_build.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
INFO: User not listed in /etc/subuid, trying root-mapped namespace
INFO: The %post section will be run under the fakeroot command
INFO: Starting build...
Copying blob sha256:184a776449911524150de3a331d4c3eafe528bd2fc50c9b97326bf3fb8e1d4f6
Copying blob sha256:12593af8cbd21b1576220a9427a4348a814d745e8be2f1e0c291feeccef9435f
Copying blob sha256:1a2929da74e607ea6ef07742bf12f320bf1a3dbae71e551ac6ca616497bcac33
Copying blob sha256:8a628cdd7ccc83e90e5a95888fcb0ec24b991141176c515ad101f12d6433eb96
Copying blob sha256:97e7d544f1102f53e73772843cd535a15024771fd751e3e7de7ac5601d82807e
Copying blob sha256:3530cc4bfea2e74a5ef8726ad907b4fdf3b12cc8ae116b0c15f283d5e831958c
Copying blob sha256:d55d33e89e5c869ebd82678fadd8aaee2a674df9727c748afb101c0d1c89f5bb
Copying blob sha256:bba90a10b1ce867f2561dd0a276e81ebb6ca207261a205c309ac9b440b3755a6
Copying blob sha256:fe39c22c9e0108a3151f0fa0e56bff032778e71642414a5d88eb18e9f2234ed7
Copying config sha256:cfd1b91292e1dfe644d5223e80cb610b96187c2f609fd518cc871db64f78e144
Writing manifest to image destination
2025/04/22 13:40:19 info unpack layer: sha256:8a628cdd7ccc83e90e5a95888fcb0ec24b991141176c515ad101f12d6433eb96
2025/04/22 13:40:20 warn xattr{etc/gshadow} ignoring ENOTSUP on setxattr "user.rootlesscontainers"
2025/04/22 13:40:20 warn xattr{/data/tmp/81753/build-temp-3875897386/rootfs/etc/gshadow} destination filesystem does not support xattrs, further warnings will be suppressed
2025/04/22 13:40:41 info unpack layer: sha256:12593af8cbd21b1576220a9427a4348a814d745e8be2f1e0c291feeccef9435f
2025/04/22 13:40:43 warn xattr{var/cache/apt/archives/partial} ignoring ENOTSUP on setxattr "user.rootlesscontainers"
2025/04/22 13:40:43 warn xattr{/data/tmp/81753/build-temp-3875897386/rootfs/var/cache/apt/archives/partial} destination filesystem does not support xattrs, further warnings will be suppressed
2025/04/22 13:40:43 info unpack layer: sha256:1a2929da74e607ea6ef07742bf12f320bf1a3dbae71e551ac6ca616497bcac33
2025/04/22 13:40:55 warn xattr{var/log/apt/term.log} ignoring ENOTSUP on setxattr "user.rootlesscontainers"
2025/04/22 13:40:55 warn xattr{/data/tmp/81753/build-temp-3875897386/rootfs/var/log/apt/term.log} destination filesystem does not support xattrs, further warnings will be suppressed
2025/04/22 13:40:55 info unpack layer: sha256:97e7d544f1102f53e73772843cd535a15024771fd751e3e7de7ac5601d82807e
2025/04/22 13:40:55 info unpack layer: sha256:3530cc4bfea2e74a5ef8726ad907b4fdf3b12cc8ae116b0c15f283d5e831958c
2025/04/22 13:40:55 info unpack layer: sha256:184a776449911524150de3a331d4c3eafe528bd2fc50c9b97326bf3fb8e1d4f6
2025/04/22 13:40:55 info unpack layer: sha256:d55d33e89e5c869ebd82678fadd8aaee2a674df9727c748afb101c0d1c89f5bb
2025/04/22 13:40:55 info unpack layer: sha256:bba90a10b1ce867f2561dd0a276e81ebb6ca207261a205c309ac9b440b3755a6
2025/04/22 13:41:35 info unpack layer: sha256:fe39c22c9e0108a3151f0fa0e56bff032778e71642414a5d88eb18e9f2234ed7
INFO: Creating SIF file...
INFO: Build complete: model-train.sif