| # Copyright The containerd Authors. |
| |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| ARG BASE |
| |
| FROM $BASE |
| RUN sh -c "mkdir /test_dir; echo test_content > /test_dir/test_file" |
| RUN sh -c "mkdir -p /C:/weird_test_dir; echo test_content > /C:/weird_test_dir/weird_test_file" |
| RUN sh -c "mkdir /:colon_prefixed; echo test_content > /:colon_prefixed/colon_prefixed_file" |
| |
| # We add a Windows style path here to ensure that for Linux, we don't mangle it in any way. |
| # The C: drive letter gets special treatment on Windows and is stripped by WithVolumes(). The remaining |
| # path is used to join with the volume mount point on the host. Colons are not allowed |
| # in Windows paths except when delimiting the drive letter, but on Linux such paths are |
| # perfectly valid and we must ensure we don't mutate them by accident. |
| # |
| # The C:/weird_test_dir volume is considered relative to "/" and will result in a mount point |
| # situated at /C:/weird_test_dir. |
| # |
| # The "/:colon_prefixed" volume is meant to test that we don't ignore copying existing contents |
| # to a volume containing a colon as the second character in the path on Linux, considering that |
| # on Windows, we skip this operation for any non-C volume defined here. |
| VOLUME ["/test_dir", "C:/weird_test_dir", "/:colon_prefixed"] |