onnxruntime/tools/ci_build/github/linux/docker
Yi Zhang 0d1da41ca8
Fix docker image layer caching to avoid redundant docker building and transient connection exceptions. (#21612)
### Description
Improve docker commands to make docker image layer caching works.
It can make docker building faster and more stable.
So far, A100 pool's system disk is too small to use docker cache.
We won't use pipeline cache for docker image and remove some legacy
code.

### Motivation and Context
There are often an exception of
```
64.58 + curl https://nodejs.org/dist/v18.17.1/node-v18.17.1-linux-x64.tar.gz -sSL --retry 5 --retry-delay 30 --create-dirs -o /tmp/src/node-v18.17.1-linux-x64.tar.gz --fail
286.4 curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
```
Because Onnxruntime pipeline have been sending too many requests to
download Nodejs in docker building.
Which is the major reason of pipeline failing now

In fact, docker image layer caching never works.
We can always see the scrips are still running
```
#9 [3/5] RUN cd /tmp/scripts && /tmp/scripts/install_centos.sh && /tmp/scripts/install_deps.sh && rm -rf /tmp/scripts
#9 0.234 /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
#9 0.235 /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
#9 0.235 /tmp/scripts/install_centos.sh: line 1: !/bin/bash: No such file or directory
#9 0.235 ++ '[' '!' -f /etc/yum.repos.d/microsoft-prod.repo ']'
#9 0.236 +++ tr -dc 0-9.
#9 0.236 +++ cut -d . -f1
#9 0.238 ++ os_major_version=8
....
#9 60.41 + curl https://nodejs.org/dist/v18.17.1/node-v18.17.1-linux-x64.tar.gz -sSL --retry 5 --retry-delay 30 --create-dirs -o /tmp/src/node-v18.17.1-linux-x64.tar.gz --fail
#9 60.59 + return 0
...
```

This PR is improving the docker command to make image layer caching
work.
Thus, CI won't send so many redundant request of downloading NodeJS.
```
#9 [2/5] ADD scripts /tmp/scripts
#9 CACHED

#10 [3/5] RUN cd /tmp/scripts && /tmp/scripts/install_centos.sh && /tmp/scripts/install_deps.sh && rm -rf /tmp/scripts
#10 CACHED

#11 [4/5] RUN adduser --uid 1000 onnxruntimedev
#11 CACHED

#12 [5/5] WORKDIR /home/onnxruntimedev
#12 CACHED
```

###Reference
https://docs.docker.com/build/drivers/

---------

Co-authored-by: Yi Zhang <your@email.com>
2024-08-06 21:37:09 +08:00
..
inference Fix docker image layer caching to avoid redundant docker building and transient connection exceptions. (#21612) 2024-08-06 21:37:09 +08:00
scripts Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00
Dockerfile.aten_cpu Upgrade GCC and remove the dependency on GCC8's experimental std::filesystem implementation (#20893) 2024-06-03 10:14:08 -07:00
Dockerfile.lort_cpu Update Aten pipeline's docker file to use UBI8 (#20856) 2024-05-30 07:38:15 -07:00
Dockerfile.manylinux2_28_cpu Upgrade GCC and remove the dependency on GCC8's experimental std::filesystem implementation (#20893) 2024-06-03 10:14:08 -07:00
Dockerfile.manylinux2_28_cuda Set CUDA12 as default in GPU packages (#21438) 2024-07-25 10:17:16 -07:00
Dockerfile.manylinux2_28_rocm Upgrade default ORTModule opset from 15 to 17 (#19315) 2024-02-14 11:19:33 -08:00
Dockerfile.manylinux2_28_training_cuda11_8 Upgrade GCC and remove the dependency on GCC8's experimental std::filesystem implementation (#20893) 2024-06-03 10:14:08 -07:00
Dockerfile.manylinux2_28_training_cuda12_2 Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00
Dockerfile.package_ubi8_cuda11_8_tensorrt8_6 Create a new Nuget Package pipeline for CUDA 12 (#18135) 2023-11-28 09:03:46 -08:00
Dockerfile.package_ubi8_cuda_tensorrt10_0 Set CUDA12 as default in GPU packages (#21438) 2024-07-25 10:17:16 -07:00
Dockerfile.package_ubi8_cuda_tensorrt10_0_torch [TensorRT EP] support TensorRT 10.2-GA (#21395) 2024-07-18 12:11:52 -07:00
Dockerfile.package_ubuntu_2004_gpu [TensorRT EP] support TensorRT 10.2-GA (#21395) 2024-07-18 12:11:52 -07:00
Dockerfile.package_ubuntu_2004_gpu_ffmpeg [TensorRT EP] support TensorRT 10.2-GA (#21395) 2024-07-18 12:11:52 -07:00
Dockerfile.ubuntu_cuda11_8_tensorrt8_6 Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00
Dockerfile.ubuntu_cuda11_tensorrt10 Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00
Dockerfile.ubuntu_cuda12_3_tensorrt8_6 Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00
Dockerfile.ubuntu_cuda12_tensorrt10 Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00
Dockerfile.ubuntu_gpu_training Add support for cuda 11.8 and python 3.11 for training (#15548) 2023-04-20 12:56:45 -07:00
Dockerfile.ubuntu_openvino Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00
Dockerfile.ubuntu_tensorrt_bin Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00
manylinux.patch Enable Address Sanitizer in CI (#19073) 2024-01-12 07:24:40 -08:00
migraphx-ci-pipeline-env.Dockerfile Update C++ dependencies (#21410) 2024-07-23 10:00:36 -07:00