├── .gitignore ├── Dockerfile.dapper ├── LICENSE ├── Makefile ├── README.md ├── a ├── alpine.yml ├── amazon-ecs-agent.yml └── amazon-metadata.yml ├── c ├── centos.yml └── container-cron.yml ├── d ├── debian.yml ├── docker-1.12.6.yml ├── docker-1.13.1.yml ├── docker-17.03.1-ce.yml ├── docker-17.03.2-ce.yml ├── docker-17.06.1-ce.yml ├── docker-17.06.2-ce.yml ├── docker-17.09.0-ce.yml ├── docker-17.09.1-ce.yml ├── docker-17.12.0-ce.yml ├── docker-17.12.1-ce.yml ├── docker-18.03.0-ce.yml ├── docker-18.03.1-ce.yml ├── docker-18.06.0-ce.yml ├── docker-18.06.1-ce.yml ├── docker-18.06.2-ce.yml ├── docker-18.06.3-ce.yml ├── docker-18.09.0.yml ├── docker-18.09.1.yml ├── docker-18.09.2.yml ├── docker-18.09.3.yml ├── docker-18.09.4.yml ├── docker-18.09.5.yml ├── docker-18.09.6.yml ├── docker-18.09.7.yml ├── docker-18.09.8.yml ├── docker-18.09.9.yml ├── docker-19.03.0.yml ├── docker-19.03.1.yml ├── docker-19.03.11.yml ├── docker-19.03.2.yml ├── docker-19.03.3.yml ├── docker-19.03.4.yml ├── docker-19.03.5.yml ├── docker-19.03.7.yml ├── docker-19.03.8.yml └── docker-19.03.9.yml ├── f └── fedora.yml ├── h └── hyperv-vm-tools.yml ├── images ├── 02-console │ └── sshd_config.append.tpl ├── 10-alpineconsole │ ├── Dockerfile │ └── prebuild.sh ├── 10-centosconsole │ ├── Dockerfile │ ├── prebuild.sh │ └── prompt.sh ├── 10-debianconsole │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-1.12.6 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-1.12.6_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-1.13.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-1.13.1_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.03.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.03.1_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.03.2 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.06.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.06.2 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.09.0 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.09.0_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.09.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.09.1_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.12.0 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.12.0_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.12.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-17.12.1_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.03.0 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.03.0_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.03.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.03.1_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.06.0 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.06.0_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.06.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.06.1_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.06.2 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.06.2_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.06.3 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.06.3_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.0 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.0_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.1_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.2 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.2_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.3 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.3_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.4 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.4_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.5 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.5_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.6 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.6_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.7 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.7_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.8 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.8_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.9 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-18.09.9_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.0 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.0_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.1 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.11 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.11_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.1_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.2 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.2_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.3 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.3_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.4 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.4_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.5 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.5_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.7 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.7_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.8 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.8_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.9 │ ├── Dockerfile │ └── prebuild.sh ├── 10-docker-19.03.9_arm64 │ ├── Dockerfile │ └── prebuild.sh ├── 10-fedoraconsole │ ├── Dockerfile │ ├── prebuild.sh │ └── prompt.sh ├── 10-hypervvmtools │ └── Dockerfile ├── 10-modemmanager │ ├── Dockerfile │ ├── modemmanager │ └── prebuild.sh ├── 10-openvmtools │ ├── Dockerfile │ └── prebuild.sh ├── 10-pingan-amc │ ├── Dockerfile │ ├── amc-control │ └── prebuild.sh ├── 10-qemuguestagent │ ├── Dockerfile │ └── run ├── 10-selinuxtools │ ├── Dockerfile │ ├── prebuild.sh │ └── prompt.sh ├── 10-ubuntuconsole │ ├── Dockerfile │ └── prebuild.sh ├── 10-vboxtools │ ├── Dockerfile │ └── run ├── 10-waagent │ ├── Dockerfile │ └── prebuild.sh ├── 20-amazonmetadata │ ├── Dockerfile │ ├── README.md │ ├── ec2-metadata │ │ ├── ec2-metadata.sh │ │ ├── ec2-tag-to-env.sh │ │ ├── ec2-tags.sh │ │ └── set-config.sh │ └── entry.sh ├── 20-iscsi │ ├── Dockerfile │ ├── Dockerfile.iscsi-tools │ ├── build.sh │ ├── entry.sh │ └── wonka.sh ├── 20-nvidiadriver │ ├── Dockerfile │ ├── build.sh │ └── ubuntu-build.sh ├── 20-volumenetshare │ ├── Dockerfile │ └── README.md └── 20-zfs │ ├── Dockerfile │ ├── Dockerfile.zfs-tools │ ├── build.sh │ ├── entry.sh │ └── wonka.sh ├── index.yml ├── k ├── kernel-extras.yml ├── kernel-headers-system-docker.yml └── kernel-headers.yml ├── m └── modem-manager.yml ├── n ├── README.md └── nvidia-driver.yml ├── o ├── open-iscsi.yml └── open-vm-tools.yml ├── p └── pingan-amc.yml ├── q └── qemu-guest-agent.yml ├── r ├── rancher-server-stable.yml └── rancher-server.yml ├── scripts ├── build-images ├── ci ├── clean ├── entry ├── release └── version ├── u └── ubuntu.yml ├── v ├── virtualbox-tools.yml ├── volume-cifs.yml ├── volume-efs.yml └── volume-nfs.yml ├── w └── waagent.yml └── z └── zfs.yml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /assets/ca.crt 3 | /state 4 | /bin 5 | /build 6 | /dist 7 | /gopath 8 | /images/*/build 9 | .dockerfile 10 | *.swp 11 | /tests/integration/MANIFEST 12 | /tests/integration/.venv* 13 | /tests/integration/.tox 14 | /tests/integration/.idea 15 | *.pyc 16 | __pycache__ 17 | /.dapper 18 | /.trash-cache 19 | -------------------------------------------------------------------------------- /Dockerfile.dapper: -------------------------------------------------------------------------------- 1 | FROM ubuntu:bionic 2 | # FROM arm64=arm64v8/ubuntu:bionic 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y curl git wget unzip 6 | 7 | ENV DAPPER_ENV VERSION DEV_BUILD 8 | ENV DAPPER_DOCKER_SOCKET true 9 | ENV DAPPER_SOURCE /go/src/github.com/rancher/os-images 10 | ENV DAPPER_OUTPUT ./dist 11 | ENV DAPPER_RUN_ARGS --privileged 12 | ENV SHELL /bin/bash 13 | WORKDIR ${DAPPER_SOURCE} 14 | 15 | ########## General Configuration ##################### 16 | ARG DAPPER_HOST_ARCH=amd64 17 | ARG HOST_ARCH=${DAPPER_HOST_ARCH} 18 | ARG ARCH=${HOST_ARCH} 19 | 20 | ARG OS_REPO=rancher 21 | ARG DOCKER_VERSION=1.10.3 22 | ARG DOCKER_PATCH_VERSION=v${DOCKER_VERSION}-ros1 23 | 24 | ARG DOCKER_URL_amd64=https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_VERSION} 25 | ARG DOCKER_URL_arm=https://github.com/rancher/docker/releases/download/${DOCKER_PATCH_VERSION}/docker-${DOCKER_VERSION}_arm 26 | ARG DOCKER_URL_arm64=https://github.com/rancher/docker/releases/download/${DOCKER_PATCH_VERSION}/docker-${DOCKER_VERSION}_arm64 27 | 28 | ARG IMAGE_BUILD_NAME=[1-9]* 29 | 30 | ###################################################### 31 | 32 | # Set up environment 33 | ENV DOCKER_URL DOCKER_URL_${ARCH} 34 | 35 | # Export all ARGS as ENV 36 | ENV ARCH=${ARCH} 37 | ENV DISTRIB_ID=${DISTRIB_ID} 38 | ENV DOCKER_PATCH_VERSION=${DOCKER_PATCH_VERSION} 39 | ENV DOCKER_URL=${DOCKER_URL} 40 | ENV DOCKER_URL_amd64=${DOCKER_URL_amd64} 41 | ENV DOCKER_URL_arm64=${DOCKER_URL_arm64} 42 | ENV DOCKER_URL_arm=${DOCKER_URL_arm} 43 | ENV DOCKER_VERSION=${DOCKER_VERSION} 44 | ENV HOST_ARCH=${HOST_ARCH} 45 | ENV OS_REPO=${OS_REPO} 46 | 47 | # Meaningful ENV 48 | ENV IMAGE_BUILD_NAME=${IMAGE_BUILD_NAME} 49 | 50 | RUN rm /bin/sh && \ 51 | ln -s /bin/bash /bin/sh 52 | 53 | # Install Docker 54 | RUN curl -fL ${!DOCKER_URL} > /usr/bin/docker && \ 55 | chmod +x /usr/bin/docker 56 | 57 | # Install dapper 58 | RUN curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m | sed 's/arm.*/arm/'` > /usr/bin/dapper && \ 59 | chmod +x /usr/bin/dapper 60 | 61 | ENTRYPOINT ["./scripts/entry"] 62 | CMD ["ci"] 63 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | TARGETS := $(shell ls scripts | grep -vE 'clean|run|help') 2 | 3 | .dapper: 4 | @echo Downloading dapper 5 | @curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m|sed 's/v7l//'` > .dapper.tmp 6 | @@chmod +x .dapper.tmp 7 | @./.dapper.tmp -v 8 | @mv .dapper.tmp .dapper 9 | 10 | $(TARGETS): .dapper 11 | mkdir -p dist 12 | ./.dapper 13 | 14 | shell-bind: .dapper 15 | ./.dapper -m bind -s 16 | 17 | clean: 18 | @./scripts/clean 19 | 20 | .DEFAULT_GOAL := ci 21 | 22 | .PHONY: $(TARGETS) 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # os-images 2 | Docker Images for RancherOS 3 | 4 | ## Building 5 | 6 | Run `make` 7 | 8 | ## Details 9 | 10 | ### Multi-arch Dockerfiles 11 | 12 | As a pre-cursor to native multi-arch support, we leverage some features of 13 | [dapper](https://github.com/rancher/dapper). 14 | 15 | In the Dockerfiles, you'll see lines like: 16 | 17 | ``` 18 | FROM rancher/os-centosconsole-base 19 | # FROM amd64=centos:7 arm64=skip arm=skip 20 | ``` 21 | 22 | The `rancher/os-centosconsole-base` does not actually exist. Dapper will download the 23 | arch specific image listed in the commented out `# FROM` line, and tag that, so the 24 | build can occur. 25 | 26 | ## Special Entrypoint and CMD 27 | 28 | Console images also use special ENTRYPOINT and CMD settings, which are bind mounted 29 | into the container at run time: 30 | 31 | ``` 32 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 33 | ``` 34 | 35 | ## Misc details 36 | 37 | The sshd is configured to accept logins from users in the `docker` group, and `root` is denied. 38 | 39 | ## Contact 40 | For bugs, questions, comments, corrections, suggestions, etc., open an issue in 41 | [rancher/os](//github.com/rancher/os/issues) with a title starting with `[os-images] `. 42 | 43 | Or just [click here](//github.com/rancher/os/issues/new?title=%5Bos-images%5D%20) to create a new issue. 44 | -------------------------------------------------------------------------------- /a/alpine.yml: -------------------------------------------------------------------------------- 1 | console: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-alpineconsole:v1.5.5${SUFFIX} 3 | command: ros console-init 4 | privileged: true 5 | labels: 6 | io.rancher.os.scope: system 7 | io.rancher.os.after: network 8 | io.docker.compose.rebuild: "false" 9 | io.rancher.os.console: alpine 10 | volumes_from: 11 | - all-volumes 12 | volumes: 13 | - /media:/media:shared 14 | - /mnt:/mnt:shared 15 | restart: always 16 | pid: host 17 | ipc: host 18 | net: host 19 | uts: host 20 | -------------------------------------------------------------------------------- /a/amazon-ecs-agent.yml: -------------------------------------------------------------------------------- 1 | ecs-agent: 2 | image: ${REGISTRY_DOMAIN}/amazon/amazon-ecs-agent${ECS_AGENT_VERSION} 3 | restart: always 4 | volumes: 5 | - /var/run/:/var/run/ 6 | - /var/log/ecs/:/log 7 | - /opt/var/lib/ecs/data:/data 8 | - /sys/fs/cgroup:/sys/fs/cgroup:ro 9 | - /var/run/docker/execdriver/native:/var/lib/docker/execdriver/native:ro 10 | ports: 11 | - "127.0.0.1:51678:51678" 12 | - "127.0.0.1:51679:51679" 13 | environment: 14 | - ECS_LOGFILE=/log/ecs-agent.log 15 | - ECS_LOGLEVEL=info 16 | - ECS_DATADIR=/data 17 | - ECS_HOST_DATA_DIR=/opt/var/lib/ecs 18 | - ECS_* 19 | - AWS_* 20 | -------------------------------------------------------------------------------- /a/amazon-metadata.yml: -------------------------------------------------------------------------------- 1 | amazon-metadata: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-amazonmetadata 3 | command: -m 4 | pid: host 5 | ipc: host 6 | net: host 7 | uts: host 8 | privileged: true 9 | labels: 10 | io.rancher.os.after: network 11 | io.rancher.os.before: console 12 | io.rancher.os.detach: "false" 13 | io.rancher.os.scope: system 14 | io.rancher.os.reloadconfig: "true" 15 | volumes: 16 | - /usr/bin/ros:/bin/ros:ro 17 | - /var/lib/rancher/conf:/var/lib/rancher/conf:rw 18 | environment: 19 | - AWS_* 20 | -------------------------------------------------------------------------------- /c/centos.yml: -------------------------------------------------------------------------------- 1 | console: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-centosconsole:v1.5.5${SUFFIX} 3 | command: ros console-init 4 | privileged: true 5 | labels: 6 | io.rancher.os.scope: system 7 | io.rancher.os.after: network 8 | io.docker.compose.rebuild: "false" 9 | io.rancher.os.console: centos 10 | volumes_from: 11 | - all-volumes 12 | volumes: 13 | - /media:/media:shared 14 | - /mnt:/mnt:shared 15 | restart: always 16 | pid: host 17 | ipc: host 18 | net: host 19 | uts: host 20 | -------------------------------------------------------------------------------- /c/container-cron.yml: -------------------------------------------------------------------------------- 1 | # Docs: https://github.com/rancher/rancher-catalog/blob/master/infra-templates/container-crontab/0/README.md 2 | container-cron: 3 | image: ${REGISTRY_DOMAIN}/rancher/container-crontab:v0.5.0 4 | privileged: true 5 | restart: always 6 | uts: host 7 | labels: 8 | io.rancher.os.scope: system 9 | io.rancher.os.after: docker 10 | volumes: 11 | - /var/run/docker.sock:/var/run/docker.sock 12 | environment: 13 | DOCKER_API_VERSION: 1.24 -------------------------------------------------------------------------------- /d/debian.yml: -------------------------------------------------------------------------------- 1 | console: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-debianconsole:v1.5.5${SUFFIX} 3 | command: ros console-init 4 | privileged: true 5 | labels: 6 | io.rancher.os.scope: system 7 | io.rancher.os.after: network 8 | io.docker.compose.rebuild: "false" 9 | io.rancher.os.console: debian 10 | volumes_from: 11 | - all-volumes 12 | volumes: 13 | - /media:/media:shared 14 | - /mnt:/mnt:shared 15 | restart: always 16 | pid: host 17 | ipc: host 18 | net: host 19 | uts: host 20 | -------------------------------------------------------------------------------- /d/docker-1.12.6.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:1.12.6-1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-1.13.1.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:1.13.1-1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-17.03.1-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:17.03.1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-17.03.2-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:17.03.2-1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-17.06.1-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:17.06.1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-17.06.2-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:17.06.2-1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-17.09.0-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:17.09.0${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-17.09.1-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:17.09.1-1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-17.12.0-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:17.12.0${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-17.12.1-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:17.12.1-1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.03.0-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.03.0${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.03.1-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.03.1-1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.06.0-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.06.0${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.06.1-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.06.1-1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.06.2-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.06.2${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.06.3-ce.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.06.3${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.0.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.0${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.1.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.2.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.2${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.3.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.3${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.4.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.4${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.5.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.5${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.6.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.6${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.7.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.7${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.8.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.8${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-18.09.9.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:18.09.9${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.0.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.0${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.1.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.1${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.11.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.11${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.2.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.2${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.3.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.3${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.4.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.4${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.5.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.5${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.7.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.7${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.8.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.8${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /d/docker-19.03.9.yml: -------------------------------------------------------------------------------- 1 | docker: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-docker:19.03.9${SUFFIX} 3 | command: ros user-docker 4 | environment: 5 | - HTTP_PROXY 6 | - HTTPS_PROXY 7 | - NO_PROXY 8 | labels: 9 | io.rancher.os.scope: system 10 | io.rancher.os.after: console 11 | net: host 12 | pid: host 13 | ipc: host 14 | uts: host 15 | privileged: true 16 | restart: always 17 | volumes_from: 18 | - all-volumes 19 | volumes: 20 | - /sys:/host/sys 21 | - /var/lib/system-docker:/var/lib/system-docker:shared 22 | -------------------------------------------------------------------------------- /f/fedora.yml: -------------------------------------------------------------------------------- 1 | console: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-fedoraconsole:v1.5.5${SUFFIX} 3 | command: ros console-init 4 | privileged: true 5 | labels: 6 | io.rancher.os.scope: system 7 | io.rancher.os.after: network 8 | io.docker.compose.rebuild: "false" 9 | io.rancher.os.console: fedora 10 | volumes_from: 11 | - all-volumes 12 | volumes: 13 | - /media:/media:shared 14 | - /mnt:/mnt:shared 15 | restart: always 16 | pid: host 17 | ipc: host 18 | net: host 19 | uts: host 20 | -------------------------------------------------------------------------------- /h/hyperv-vm-tools.yml: -------------------------------------------------------------------------------- 1 | hyperv-vm-tools: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-hypervvmtools:v4.14.138-rancher-1 3 | command: ["hv_kvp_daemon", "-n"] 4 | privileged: true 5 | labels: 6 | io.rancher.os.scope: system 7 | restart: always 8 | pid: host 9 | ipc: host 10 | net: host 11 | uts: host 12 | volumes_from: 13 | - command-volumes 14 | - system-volumes 15 | - user-volumes 16 | -------------------------------------------------------------------------------- /images/02-console/sshd_config.append.tpl: -------------------------------------------------------------------------------- 1 | 2 | {{- if .Port}} 3 | Port {{.Port}} 4 | {{- end}} 5 | 6 | {{- if .ListenAddress}} 7 | ListenAddress {{.ListenAddress}} 8 | {{- end}} 9 | 10 | ClientAliveInterval 180 11 | 12 | UseDNS no 13 | PermitRootLogin no 14 | AllowGroups docker 15 | -------------------------------------------------------------------------------- /images/10-alpineconsole/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/os-alpineconsole-base 2 | # FROM amd64=alpine:3.10 arm64=arm64v8/alpine:3.10 3 | 4 | COPY build/sshd_config.append.tpl /etc/ssh/ 5 | 6 | RUN apk --no-cache add bash openssh iptables rsync sudo \ 7 | vim less curl ca-certificates htop \ 8 | kmod iproute2 util-linux bash-completion && \ 9 | rm -rf /etc/ssh/*key* && \ 10 | addgroup -g 1100 rancher && \ 11 | addgroup -g 1101 docker && \ 12 | addgroup -S sudo && \ 13 | adduser -D -u 1100 -g rancher -G sudo -s /bin/bash rancher && \ 14 | adduser rancher docker && \ 15 | adduser -D -u 1101 -g docker -G sudo -s /bin/bash docker && \ 16 | adduser docker docker && \ 17 | sed -i 's/rancher:!/rancher:*/g' /etc/shadow && \ 18 | sed -i 's/docker:!/docker:*/g' /etc/shadow && \ 19 | echo '## allow password less for rancher user' >> /etc/sudoers && \ 20 | echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 21 | echo '## allow password less for docker user' >> /etc/sudoers && \ 22 | echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 23 | ln -s /bin/ps /usr/bin/ps && \ 24 | cat /etc/ssh/sshd_config > /etc/ssh/sshd_config.tpl && \ 25 | cat /etc/ssh/sshd_config.append.tpl >> /etc/ssh/sshd_config.tpl && \ 26 | rm -f /etc/ssh/sshd_config.append.tpl /etc/ssh/sshd_config 27 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 28 | -------------------------------------------------------------------------------- /images/10-alpineconsole/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./build 7 | mkdir -p ./build 8 | cp ./../02-console/sshd_config.append.tpl ./build/ 9 | -------------------------------------------------------------------------------- /images/10-centosconsole/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/os-centosconsole-base 2 | # FROM amd64=centos:7.7.1908 arm64=arm64v8/centos:7 3 | 4 | COPY prompt.sh /etc/profile.d/ 5 | COPY build/sshd_config.append.tpl /etc/ssh/ 6 | 7 | RUN yum install -y iptables openssh-server rsync sudo \ 8 | vim less ca-certificates psmisc htop \ 9 | procps-ng iproute openssh-clients bash-completion wget \ 10 | && yum clean all \ 11 | && rm -rf /etc/ssh/*key* \ 12 | && localedef -c -f UTF-8 -i en_US en_US.UTF-8 \ 13 | && groupadd --gid 1100 rancher \ 14 | && groupadd --gid 1101 docker \ 15 | && useradd -u 1100 -g rancher -G docker,wheel -m -s /bin/bash rancher \ 16 | && useradd -u 1101 -g docker -G docker,wheel -m -s /bin/bash docker \ 17 | && echo '## allow password less for rancher user' >> /etc/sudoers \ 18 | && echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 19 | && echo '## allow password less for docker user' >> /etc/sudoers \ 20 | && echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 21 | && cat /etc/ssh/sshd_config > /etc/ssh/sshd_config.tpl \ 22 | && cat /etc/ssh/sshd_config.append.tpl >> /etc/ssh/sshd_config.tpl \ 23 | && rm -f /etc/ssh/sshd_config.append.tpl /etc/ssh/sshd_config 24 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 25 | -------------------------------------------------------------------------------- /images/10-centosconsole/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./build 7 | mkdir -p ./build 8 | cp ./../02-console/sshd_config.append.tpl ./build/ 9 | -------------------------------------------------------------------------------- /images/10-centosconsole/prompt.sh: -------------------------------------------------------------------------------- 1 | export PS1='[\u@\h \W]\$ ' 2 | -------------------------------------------------------------------------------- /images/10-debianconsole/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/os-debianconsole-base 2 | # FROM amd64=debian:stretch arm64=arm64v8/debian:stretch 3 | 4 | COPY build/sshd_config.append.tpl /etc/ssh/ 5 | 6 | RUN apt-get update \ 7 | && apt-get install -y --no-install-recommends iptables openssh-server rsync locales \ 8 | sudo vim less curl ca-certificates psmisc htop kmod iproute2 \ 9 | net-tools bash-completion wget \ 10 | && rm -rf /var/lib/apt/lists/* \ 11 | && rm -rf /etc/ssh/*key* \ 12 | && locale-gen en_US.UTF-8 \ 13 | && addgroup --gid 1100 rancher \ 14 | && addgroup --gid 1101 docker \ 15 | && useradd -u 1100 -g rancher -G docker,sudo -m -s /bin/bash rancher \ 16 | && useradd -u 1101 -g docker -G docker,sudo -m -s /bin/bash docker \ 17 | && echo '## allow password less for rancher user' >> /etc/sudoers \ 18 | && echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 19 | && echo '## allow password less for docker user' >> /etc/sudoers \ 20 | && echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 21 | && ln -s /bin/ps /usr/bin/ps \ 22 | && cat /etc/ssh/sshd_config > /etc/ssh/sshd_config.tpl \ 23 | && cat /etc/ssh/sshd_config.append.tpl >> /etc/ssh/sshd_config.tpl \ 24 | && rm -f /etc/ssh/sshd_config.append.tpl /etc/ssh/sshd_config 25 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 26 | -------------------------------------------------------------------------------- /images/10-debianconsole/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./build 7 | mkdir -p ./build 8 | cp ./../02-console/sshd_config.append.tpl ./build/ 9 | -------------------------------------------------------------------------------- /images/10-docker-1.12.6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-1.12.6/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -e 4 | 5 | #RUN curl -sfL https://get.docker.com/builds/Linux/x86_64/docker-1.11.2.tgz | tar xzf - -C /assets && \ 6 | # mv /assets/docker /assets/docker-1.11.2 7 | 8 | VERSION=$1 9 | ARCH=$2 10 | if [ "$ARCH" == "amd64" ]; then 11 | DOCKERARCH="x86_64" 12 | URL="https://get.docker.com/builds/Linux/${DOCKERARCH}/docker-${VERSION}.tgz" 13 | fi 14 | 15 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 16 | 17 | mkdir -p $DEST 18 | curl -sL ${URL} | tar xzf - -C $DEST 19 | mv $DEST/docker $DEST/engine 20 | rm -rf $DEST/completion 21 | 22 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 23 | -------------------------------------------------------------------------------- /images/10-docker-1.12.6_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-1.12.6_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -e 4 | 5 | #RUN curl -sfL https://get.docker.com/builds/Linux/x86_64/docker-1.11.2.tgz | tar xzf - -C /assets && \ 6 | # mv /assets/docker /assets/docker-1.11.2 7 | 8 | VERSION=$1 9 | ARCH=$2 10 | if [ "$ARCH" == "arm64" ]; then 11 | URL="https://github.com/rancher/docker-package/releases/download/docker-v${VERSION}/docker-v${VERSION}_${ARCH}.tgz" 12 | SUFFIX="_${ARCH}" 13 | fi 14 | 15 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 16 | 17 | mkdir -p $DEST 18 | curl -sL ${URL} | tar xzf - -C $DEST 19 | mv $DEST/docker $DEST/engine 20 | rm -rf $DEST/completion 21 | 22 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 23 | -------------------------------------------------------------------------------- /images/10-docker-1.13.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-1.13.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | #RUN curl -sfL https://get.docker.com/builds/Linux/x86_64/docker-1.11.2.tgz | tar xzf - -C /assets && \ 6 | # mv /assets/docker /assets/docker-1.11.2 7 | 8 | VERSION=$1 9 | ARCH=$2 10 | if [ "$ARCH" == "amd64" ]; then 11 | DOCKERARCH="x86_64" 12 | URL="https://get.docker.com/builds/Linux/${DOCKERARCH}/docker-${VERSION}.tgz" 13 | fi 14 | 15 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 16 | 17 | mkdir -p $DEST 18 | curl -sL ${URL} | tar xzf - -C $DEST 19 | mv $DEST/docker $DEST/engine 20 | mv $DEST/engine/completion $DEST || true 21 | 22 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 23 | -------------------------------------------------------------------------------- /images/10-docker-1.13.1_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-1.13.1_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | #RUN curl -sfL https://get.docker.com/builds/Linux/x86_64/docker-1.11.2.tgz | tar xzf - -C /assets && \ 6 | # mv /assets/docker /assets/docker-1.11.2 7 | 8 | VERSION=$1 9 | ARCH=$2 10 | if [ "$ARCH" == "arm64" ]; then 11 | URL="https://github.com/rancher/docker-package/releases/download/docker-v${VERSION}/docker-${VERSION}.tgz" 12 | SUFFIX="_${ARCH}" 13 | fi 14 | 15 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 16 | 17 | mkdir -p $DEST 18 | curl -sL ${URL} | tar xzf - -C $DEST 19 | mv $DEST/docker $DEST/engine 20 | mv $DEST/engine/completion $DEST 21 | 22 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 23 | -------------------------------------------------------------------------------- /images/10-docker-17.03.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.03.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | #RUN curl -sfL https://get.docker.com/builds/Linux/x86_64/docker-1.11.2.tgz | tar xzf - -C /assets && \ 5 | # mv /assets/docker /assets/docker-1.11.2 6 | 7 | VERSION=$1 8 | ARCH=$2 9 | if [ "$ARCH" == "amd64" ]; then 10 | DOCKERARCH="x86_64" 11 | URL="https://get.docker.com/builds/Linux/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | mv $DEST/docker $DEST/engine 19 | rm -rf $DEST/completion 20 | -------------------------------------------------------------------------------- /images/10-docker-17.03.1_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.03.1_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | URL="https://github.com/rancher/docker-package/releases/download/docker-v${VERSION}-ce/docker-${VERSION}-ce.tgz" 8 | SUFFIX="_${ARCH}" 9 | fi 10 | 11 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 12 | 13 | mkdir -p $DEST 14 | curl -sL ${URL} | tar xzf - -C $DEST 15 | mv $DEST/docker $DEST/engine 16 | mv $DEST/engine/completion $DEST 17 | -------------------------------------------------------------------------------- /images/10-docker-17.03.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.03.2/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "amd64" ]; then 8 | DOCKERARCH="x86_64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | mv $DEST/docker $DEST/engine 17 | mv $DEST/engine/completion $DEST || true 18 | 19 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 20 | -------------------------------------------------------------------------------- /images/10-docker-17.06.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.06.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | fi 10 | 11 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 12 | 13 | mkdir -p $DEST 14 | curl -sL ${URL} | tar xzf - -C $DEST 15 | mv $DEST/docker $DEST/engine 16 | mv $DEST/engine/completion $DEST || true 17 | -------------------------------------------------------------------------------- /images/10-docker-17.06.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.06.2/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "amd64" ]; then 8 | DOCKERARCH="x86_64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | mv $DEST/docker $DEST/engine 17 | mv $DEST/engine/completion $DEST || true 18 | 19 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 20 | -------------------------------------------------------------------------------- /images/10-docker-17.09.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.09.0/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | fi 10 | 11 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 12 | 13 | mkdir -p $DEST 14 | curl -sL ${URL} | tar xzf - -C $DEST 15 | mv $DEST/docker $DEST/engine 16 | mv $DEST/engine/completion $DEST || true 17 | -------------------------------------------------------------------------------- /images/10-docker-17.09.0_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.09.0_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | SUFFIX="_${ARCH}" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | mv $DEST/docker $DEST/engine 17 | mv $DEST/engine/completion $DEST || true 18 | -------------------------------------------------------------------------------- /images/10-docker-17.09.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.09.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "amd64" ]; then 8 | DOCKERARCH="x86_64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | mv $DEST/docker $DEST/engine 17 | mv $DEST/engine/completion $DEST || true 18 | 19 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 20 | -------------------------------------------------------------------------------- /images/10-docker-17.09.1_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.09.1_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "arm64" ]; then 8 | DOCKERARCH="aarch64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | mv $DEST/docker $DEST/engine 18 | mv $DEST/engine/completion $DEST || true 19 | 20 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 21 | -------------------------------------------------------------------------------- /images/10-docker-17.12.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.12.0/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | fi 10 | 11 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 12 | 13 | mkdir -p $DEST 14 | curl -sL ${URL} | tar xzf - -C $DEST 15 | mv $DEST/docker $DEST/engine 16 | mv $DEST/engine/completion $DEST || true 17 | -------------------------------------------------------------------------------- /images/10-docker-17.12.0_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.12.0_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | SUFFIX="_${ARCH}" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | mv $DEST/docker $DEST/engine 17 | mv $DEST/engine/completion $DEST || true 18 | -------------------------------------------------------------------------------- /images/10-docker-17.12.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.12.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "amd64" ]; then 8 | DOCKERARCH="x86_64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | mv $DEST/docker $DEST/engine 17 | mv $DEST/engine/completion $DEST || true 18 | 19 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 20 | -------------------------------------------------------------------------------- /images/10-docker-17.12.1_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-17.12.1_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "arm64" ]; then 8 | DOCKERARCH="aarch64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | mv $DEST/docker $DEST/engine 18 | mv $DEST/engine/completion $DEST || true 19 | 20 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 21 | -------------------------------------------------------------------------------- /images/10-docker-18.03.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.03.0/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | fi 10 | 11 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 12 | 13 | mkdir -p $DEST 14 | curl -sL ${URL} | tar xzf - -C $DEST 15 | mv $DEST/docker $DEST/engine 16 | mv $DEST/engine/completion $DEST || true 17 | -------------------------------------------------------------------------------- /images/10-docker-18.03.0_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.03.0_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | SUFFIX="_${ARCH}" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | mv $DEST/docker $DEST/engine 17 | mv $DEST/engine/completion $DEST || true 18 | -------------------------------------------------------------------------------- /images/10-docker-18.03.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.03.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "amd64" ]; then 8 | DOCKERARCH="x86_64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | mv $DEST/docker $DEST/engine 17 | mv $DEST/engine/completion $DEST || true 18 | 19 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 20 | -------------------------------------------------------------------------------- /images/10-docker-18.03.1_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.03.1_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "arm64" ]; then 8 | DOCKERARCH="aarch64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | mv $DEST/docker $DEST/engine 18 | mv $DEST/engine/completion $DEST || true 19 | 20 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 21 | -------------------------------------------------------------------------------- /images/10-docker-18.06.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.06.0/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}-ce/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.06.0_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.06.0_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}-ce/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.06.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.06.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "amd64" ]; then 8 | DOCKERARCH="x86_64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}-ce/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | 20 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 21 | -------------------------------------------------------------------------------- /images/10-docker-18.06.1_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.06.1_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # patch version 1, CVE-2019-5736 3 | set -ex 4 | 5 | VERSION=$1 6 | ARCH=$2 7 | if [ "$ARCH" == "arm64" ]; then 8 | DOCKERARCH="aarch64" 9 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}-ce/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | 21 | curl -sL -o $DEST/engine/docker-runc https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v${VERSION}-${ARCH} 22 | -------------------------------------------------------------------------------- /images/10-docker-18.06.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.06.2/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}-ce/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.06.2_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.06.2_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}-ce/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.06.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.06.3/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}-ce/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.06.3_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.06.3_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}-ce.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}-ce/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.0/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.0_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.0_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.1_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.1_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.2/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.2_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.2_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.3/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.3_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.3_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.4/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.4_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.4_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.5/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.5/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.5_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.5_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.6/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.6_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.6_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.7/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.7_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.7_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.8/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.8_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.8_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-18.09.9/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.9/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | fi 11 | 12 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 13 | 14 | mkdir -p $DEST 15 | curl -sL ${URL} | tar xzf - -C $DEST 16 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 17 | mv $DEST/docker $DEST/engine 18 | -------------------------------------------------------------------------------- /images/10-docker-18.09.9_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-18.09.9_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 10 | SUFFIX="_${ARCH}" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 18 | mv $DEST/docker $DEST/engine 19 | -------------------------------------------------------------------------------- /images/10-docker-19.03.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.0/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.0_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.0_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.1/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.11/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.11_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.11_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.1_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.1_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.2/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.2_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.2_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.3/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.3_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.3_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.4/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.4_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.4_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.5/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.5/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.5_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.5_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.7/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.7_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.7_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.8/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.8_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.8_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-docker-19.03.9/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.9/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "amd64" ]; then 7 | DOCKERARCH="x86_64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | fi 12 | 13 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 14 | 15 | mkdir -p $DEST 16 | curl -sL ${URL} | tar xzf - -C $DEST 17 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 18 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 19 | mv $DEST/docker $DEST/engine 20 | #mv $DEST/docker-rootless-extras/* $DEST/engine 21 | -------------------------------------------------------------------------------- /images/10-docker-19.03.9_arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | COPY engine /engine 3 | -------------------------------------------------------------------------------- /images/10-docker-19.03.9_arm64/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | VERSION=$1 5 | ARCH=$2 6 | if [ "$ARCH" == "arm64" ]; then 7 | DOCKERARCH="aarch64" 8 | URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-${VERSION}.tgz" 9 | #ROOTLESS_URL="https://download.docker.com/linux/static/stable/${DOCKERARCH}/docker-rootless-extras-${VERSION}.tgz" 10 | COMPLETION_URL="https://raw.githubusercontent.com/docker/cli/v${VERSION}/contrib/completion/bash/docker" 11 | SUFFIX="_${ARCH}" 12 | fi 13 | 14 | DEST="./images/10-docker-${VERSION}${SUFFIX}" 15 | 16 | mkdir -p $DEST 17 | curl -sL ${URL} | tar xzf - -C $DEST 18 | #curl -sL ${ROOTLESS_URL} | tar xzf - -C $DEST 19 | curl -sL -o $DEST/docker/completion ${COMPLETION_URL} 20 | mv $DEST/docker $DEST/engine 21 | #mv $DEST/docker-rootless-extras/* $DEST/engine 22 | -------------------------------------------------------------------------------- /images/10-fedoraconsole/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/os-fedoraconsole-base 2 | # FROM amd64=fedora:31 arm64=arm64v8/fedora:31 3 | 4 | COPY prompt.sh /etc/profile.d/ 5 | COPY build/sshd_config.append.tpl /etc/ssh/ 6 | 7 | RUN dnf install -y iptables openssh-server rsync sudo vim-minimal \ 8 | less ca-certificates psmisc htop procps-ng \ 9 | iproute openssh-clients bash-completion iputils wget \ 10 | && dnf clean all \ 11 | && rm -rf /etc/ssh/*key* \ 12 | && groupadd --gid 1100 rancher \ 13 | && groupadd --gid 1101 docker \ 14 | && useradd -u 1100 -g rancher -G docker,wheel -m -s /bin/bash rancher \ 15 | && useradd -u 1101 -g docker -G docker,wheel -m -s /bin/bash docker \ 16 | && echo '## allow password less for rancher user' >> /etc/sudoers \ 17 | && echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 18 | && echo '## allow password less for docker user' >> /etc/sudoers \ 19 | && echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 20 | && cat /etc/ssh/sshd_config > /etc/ssh/sshd_config.tpl \ 21 | && cat /etc/ssh/sshd_config.append.tpl >> /etc/ssh/sshd_config.tpl \ 22 | && rm -f /etc/ssh/sshd_config.append.tpl /etc/ssh/sshd_config \ 23 | && sed -i '0,/PermitRootLogin/{//d}' /etc/ssh/sshd_config.tpl 24 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 25 | -------------------------------------------------------------------------------- /images/10-fedoraconsole/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./build 7 | mkdir -p ./build 8 | cp ./../02-console/sshd_config.append.tpl ./build/ 9 | -------------------------------------------------------------------------------- /images/10-fedoraconsole/prompt.sh: -------------------------------------------------------------------------------- 1 | export PS1='[\u@\h \W]\$ ' 2 | -------------------------------------------------------------------------------- /images/10-hypervvmtools/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcc:7.4.0 as build-essential 2 | # FROM arm64=skip arm=skip 3 | #RUN apt-get update && \ 4 | # apt-get install -y --no-install-recommends kmod && \ 5 | # apt-get clean && \ 6 | # rm -rf /var/lib/apt/* \ 7 | 8 | WORKDIR /dist 9 | ENV KERNEL_VERSION 4.14.138-rancher 10 | ENV KERNEL_SRC https://github.com/rancher/os-kernel/releases/download/v${KERNEL_VERSION}/linux-${KERNEL_VERSION}-x86-src.tgz 11 | 12 | RUN wget -q $KERNEL_SRC && \ 13 | tar xf linux-${KERNEL_VERSION}-x86-src.tgz -C . && \ 14 | cd v${KERNEL_VERSION}/tools/hv && \ 15 | make && \ 16 | mkdir -p /dist/scripts /dist/bin && \ 17 | cp hv*daemon /dist/bin/ && \ 18 | cp -a hv_get_dhcp_info.sh /dist/scripts/hv_get_dhcp_info && \ 19 | cp -a hv_get_dns_info.sh /dist/scripts/hv_get_dns_info && \ 20 | cp -a hv_set_ifconfig.sh /dist/scripts/hv_set_ifconfig && \ 21 | cp lsvmbus /dist/bin 22 | 23 | FROM debian:stable-slim 24 | # FROM arm64=skip arm=skip 25 | 26 | RUN apt-get update && \ 27 | apt-get install -y --no-install-recommends sudo && \ 28 | apt-get clean && \ 29 | rm -rf /var/lib/apt/* && \ 30 | mkdir -p /usr/libexec/hypervkvpd/ 31 | 32 | COPY --from=build-essential /dist/bin/* /usr/bin/ 33 | COPY --from=build-essential /dist/scripts/* /usr/libexec/hypervkvpd/ 34 | 35 | RUN chmod +x /usr/bin/hv_* && \ 36 | chmod +x /usr/bin/lsvmbus 37 | 38 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 39 | 40 | RUN addgroup --gid 1100 rancher && \ 41 | addgroup --gid 1101 docker && \ 42 | adduser -q -u 1100 --gid 1100 --shell /bin/bash rancher && \ 43 | adduser -q -u 1101 --gid 1101 --shell /bin/bash docker && \ 44 | adduser docker sudo && \ 45 | sed -i 's/rancher:!/rancher:*/g' /etc/shadow && \ 46 | sed -i 's/docker:!/docker:*/g' /etc/shadow && \ 47 | echo '## allow password less for rancher user' >> /etc/sudoers && \ 48 | echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 49 | echo '## allow password less for docker user' >> /etc/sudoers && \ 50 | echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 51 | echo "docker:tcuser" | chpasswd 52 | -------------------------------------------------------------------------------- /images/10-modemmanager/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | RUN apt-get update && apt-get install -yq --no-install-recommends \ 4 | jq \ 5 | dhcpcd5 \ 6 | iproute2 \ 7 | modemmanager \ 8 | policykit-1 \ 9 | dbus && \ 10 | apt-get clean && rm -rf /var/lib/apt/lists/* 11 | 12 | COPY yq_linux_amd64 /usr/bin/yq 13 | 14 | COPY modemmanager /usr/bin/modemmanager 15 | 16 | RUN chmod +x /usr/bin/yq && \ 17 | mkdir -p /var/run/dbus && chmod +x /usr/bin/modemmanager 18 | 19 | CMD ["/usr/bin/modemmanager"] 20 | -------------------------------------------------------------------------------- /images/10-modemmanager/modemmanager: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | # ---------------------------------------------------------------------------------------------------------------------- 4 | # pre-flight & exit hook 5 | # ---------------------------------------------------------------------------------------------------------------------- 6 | system-docker restart udev-cold 7 | 8 | if [ -e .4g-interfaces ]; then 9 | INTERFACES=`cat .4g-interfaces` 10 | for i in $INTERFACES 11 | do 12 | EXIST_ADDR=`ip -f inet addr show $i | awk '/inet / {print $2}'` 13 | if [[ -n $EXIST_ADDR ]]; then 14 | ip addr del $EXIST_ADDR dev $i 15 | fi 16 | done 17 | rm -rf .4g-interfaces 18 | fi 19 | 20 | _sigProcess() { 21 | echo "SIGINT/SIGTERM signal..." 22 | kill -9 $dbusPID 23 | kill -9 $mmPID 24 | wait 25 | kill -9 $$ 26 | } 27 | 28 | trap _sigProcess SIGINT SIGKILL SIGTERM 29 | 30 | if [ ! -d /var/run/dbus ]; then 31 | mkdir -p /var/run/dbus 32 | fi 33 | 34 | if [ -e /var/run/dbus/pid ]; then 35 | rm -rf /var/run/dbus/pid 36 | fi 37 | # ---------------------------------------------------------------------------------------------------------------------- 38 | # mmcli main logic 39 | # 1. ros config export 40 | # 2. mmcli -L 41 | # 3. mmcli -m --simple-connect="" 42 | # 4. dhcpcd -MA4 '' 43 | # ---------------------------------------------------------------------------------------------------------------------- 44 | _mmcliProcess() { 45 | sleep 5 46 | found=false 47 | n=0 48 | until [ $n -ge 5 ] 49 | do 50 | modem=`mmcli -L | grep Modem || true` 51 | if [ ! -z "$modem" ]; then 52 | found=true 53 | break 54 | fi 55 | n=$[$n+1] 56 | sleep 25 57 | done 58 | 59 | if $found ; then 60 | index=0 61 | RANCHER_NETWORK=`ros config export | yq r - rancher.network -j` 62 | MODEM_NUMBERS=`mmcli -L | grep Modem | sed -e 's/\//\ /g' | awk '{print $5}'` 63 | echo "Found available modem number: $MODEM_NUMBERS ............................." 64 | touch .4g-interfaces 65 | for i in $MODEM_NUMBERS 66 | do 67 | CONFIG_SIZE=`jq -r ".modem_networks" <<< $RANCHER_NETWORK | jq length` 68 | for ((j=0; j<$CONFIG_SIZE; j++)) 69 | do 70 | INTERFACE_PATH=`mmcli -m $i status | grep device | awk -F"device: " '{print $2}' | sed "s/'/ /g" | sed '/^$/d' | sed 's/[ \t]*$//g'` 71 | CONFIG_INTERFACE=`ls $INTERFACE_PATH/*/net` 72 | VALID_INTERFACE=`mmcli -m $i status | grep -w $CONFIG_INTERFACE || true` 73 | if [[ -z $VALID_INTERFACE ]]; then 74 | continue 75 | fi 76 | apn=`jq -r ".modem_networks.$CONFIG_INTERFACE.apn" <<< $RANCHER_NETWORK` 77 | extras=`jq -r ".modem_networks.$CONFIG_INTERFACE.extra_args" <<< $RANCHER_NETWORK` 78 | break 79 | done 80 | 81 | index=$[$index+1] 82 | if [[ $apn == null ]]; then 83 | echo "Failed to config modem $i: interface and apn match error ............................" 84 | continue 85 | fi 86 | if [[ $extras == null ]]; then 87 | # MODEM_SIMPLE_CONNECT=`mmcli -m ${i} --simple-connect="apn=$apn"` 88 | MODEM_SIMPLE_CONNECT=`mmcli -m ${i} --simple-connect="apn=$apn"` 89 | else 90 | # MODEM_SIMPLE_CONNECT=`mmcli -m ${i} --simple-connect="apn=$apn,$extras"` 91 | MODEM_SIMPLE_CONNECT=`mmcli -m ${MODEM_NUMBER} --simple-connect="apn=$apn,$extras"` 92 | fi 93 | if [ $? -eq 0 ]; then 94 | echo "Modem $i connect result: $MODEM_SIMPLE_CONNECT ............................." 95 | # MODEM_BEARER=`mmcli -m ${i} -b 0` 96 | MODEM_INTERFACE=`mmcli -m ${i} -b 0 | grep interface | sed "s/'/ /g" | awk '{print $3}'` 97 | EXIST_ADDR=`ip -f inet addr show $MODEM_INTERFACE | awk '/inet / {print $2}'` 98 | if [[ -n $EXIST_ADDR ]]; then 99 | ip addr del $EXIST_ADDR dev $MODEM_INTERFACE 100 | fi 101 | dhcpcd -A4 --oneshot $MODEM_INTERFACE 102 | echo "$MODEM_INTERFACE" >> .4g-interfaces 103 | fi 104 | done 105 | fi 106 | } 107 | 108 | _mmcliProcess & 109 | # ---------------------------------------------------------------------------------------------------------------------- 110 | # start up 2 daemon process 111 | # 1: dbus-daemon 112 | # 2: ModemManager 113 | # ---------------------------------------------------------------------------------------------------------------------- 114 | dbus-daemon --system --nopidfile --nofork --print-pid & 115 | 116 | if [ $? == 1 ]; then 117 | exit 1 118 | fi 119 | 120 | dbusPID=$! 121 | 122 | sleep 2 123 | 124 | ModemManager --debug & 125 | 126 | mmPID=$! 127 | 128 | wait -------------------------------------------------------------------------------- /images/10-modemmanager/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./yq_linux_amd64 7 | 8 | wget --no-check-certificate https://github.com/mikefarah/yq/releases/download/2.2.0/yq_linux_amd64 9 | -------------------------------------------------------------------------------- /images/10-openvmtools/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | # FROM arm=skip arm64=skip 3 | 4 | # net-tools for ifconfig, iproute for ip 5 | RUN apt-get update && apt-get install -y \ 6 | net-tools \ 7 | iproute2 \ 8 | sudo \ 9 | fuse \ 10 | libtirpc-common \ 11 | libdumbnet1 \ 12 | libfuse2 \ 13 | libffi6 \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/* 16 | 17 | COPY bin/ /usr/local/bin 18 | COPY lib/ /usr/local/lib 19 | COPY etc/ /etc 20 | 21 | RUN mkdir -p /mnt/hgfs \ 22 | && ln -s /usr/local/bin/* /usr/bin/ \ 23 | && ldconfig 24 | 25 | ENV LD_LIBRARY_PATH /lib:/usr/local/lib 26 | ENV LIBRARY_PATH /lib:/usr/local/lib 27 | 28 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 29 | 30 | RUN addgroup --gid 1100 rancher && \ 31 | addgroup --gid 1101 docker && \ 32 | adduser -q -u 1100 --gid 1100 --shell /bin/bash rancher && \ 33 | adduser -q -u 1101 --gid 1101 --shell /bin/bash docker && \ 34 | adduser docker sudo && \ 35 | sed -i 's/rancher:!/rancher:*/g' /etc/shadow && \ 36 | sed -i 's/docker:!/docker:*/g' /etc/shadow && \ 37 | echo '## allow password less for rancher user' >> /etc/sudoers && \ 38 | echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 39 | echo '## allow password less for docker user' >> /etc/sudoers && \ 40 | echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 41 | echo "docker:tcuser" | chpasswd 42 | -------------------------------------------------------------------------------- /images/10-openvmtools/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./bin ./lib ./etc 7 | 8 | wget https://github.com/Jason-ZW/open-vm-tools/releases/download/stable-10.3.10/open-vm-tools.tar.gz \ 9 | && tar xvzf open-vm-tools.tar.gz \ 10 | && cp -r open-vm-tools-build/bin . \ 11 | && cp -r open-vm-tools-build/lib . \ 12 | && cp -r open-vm-tools-build/etc . \ 13 | && rm -rf open-vm-tools-build open-vm-tools.tar.gz 14 | -------------------------------------------------------------------------------- /images/10-pingan-amc/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | RUN apt-get update && apt-get install -yq --no-install-recommends \ 4 | curl \ 5 | procps \ 6 | iproute2 \ 7 | net-tools && \ 8 | apt-get clean && rm -rf /var/lib/apt/lists/* 9 | 10 | RUN mkdir /opt/cloud 11 | ADD Temp_Init/agent-manager-client-linux-amd64-0.0.6.tar /opt/cloud/ 12 | COPY amc-control /usr/bin/amc-control 13 | RUN chmod +x /usr/bin/amc-control && \ 14 | echo '#!/bin/bash' > /usr/local/bin/hostnamectl && \ 15 | chmod a+x /usr/local/bin/hostnamectl 16 | 17 | CMD ["/usr/bin/amc-control"] 18 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 19 | -------------------------------------------------------------------------------- /images/10-pingan-amc/amc-control: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | _sigProcess() { 3 | echo "SIGINT/SIGTERM signal..." 4 | /opt/cloud/agent-manager-client/control stop 5 | /opt/cloud/agents/pamon-agent/control stop 6 | cd /opt/cloud/agents/cloud-agent && ./control stop 7 | kill -9 $SLEEPPID 8 | wait 9 | kill -9 $$ 10 | } 11 | trap _sigProcess SIGINT SIGKILL SIGTERM 12 | 13 | /opt/cloud/agent-manager-client/control start 14 | # Starting agent-manager-client can't be started in the foreground 15 | # so use `sleep infinity` as the daemon. 16 | sleep infinity & 17 | SLEEPPID=$! 18 | 19 | wait 20 | -------------------------------------------------------------------------------- /images/10-pingan-amc/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | public_cloud_Linux_host_template_production_guide_url=https://obs-cn-shanghai.yun.pingan.com/pacloud/%E5%85%AC%E6%9C%89%E4%BA%91Linux%E4%B8%BB%E6%9C%BA%E6%A8%A1%E6%9D%BF%E5%88%B6%E4%BD%9C%E6%8C%87%E5%AF%BC%E6%89%8B%E5%86%8C.zip?response-content-disposition=attachment%3Bfilename%3D%25E5%2585%25AC%25E6%259C%2589%25E4%25BA%2591Linux%25E4%25B8%25BB%25E6%259C%25BA%25E6%25A8%25A1%25E6%259D%25BF%25E5%2588%25B6%25E4%25BD%259C%25E6%258C%2587%25E5%25AF%25BC%25E6%2589%258B%25E5%2586%258C.zip 5 | 6 | client_version=0.0.6 7 | 8 | cd $(dirname $0) 9 | 10 | rm -rf Linux Temp_Init public_cloud_Linux_host_template_production_guide.zip 11 | 12 | wget -O public_cloud_Linux_host_template_production_guide.zip ${public_cloud_Linux_host_template_production_guide_url} 13 | 14 | unzip public_cloud_Linux_host_template_production_guide.zip "Linux/Temp_Init.tar" -d . 15 | 16 | tar -xvf Linux/Temp_Init.tar Temp_Init/agent-manager-client-linux-amd64-${client_version}.tar 17 | -------------------------------------------------------------------------------- /images/10-qemuguestagent/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stretch-slim 2 | # FROM arm64=skip 3 | 4 | # qga version 2.8.1 5 | RUN apt-get update \ 6 | && apt-get install --no-install-recommends --no-install-suggests -y qemu-guest-agent \ 7 | && apt-get clean \ 8 | && rm -rf /var/lib/apt/* 9 | ADD run /usr/local/bin/ 10 | 11 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 12 | 13 | RUN addgroup --gid 1100 rancher && \ 14 | addgroup --gid 1101 docker && \ 15 | adduser -q -u 1100 --gid 1100 --shell /bin/bash rancher && \ 16 | adduser -q -u 1101 --gid 1101 --shell /bin/bash docker && \ 17 | adduser docker sudo && \ 18 | sed -i 's/rancher:!/rancher:*/g' /etc/shadow && \ 19 | sed -i 's/docker:!/docker:*/g' /etc/shadow && \ 20 | echo '## allow password less for rancher user' >> /etc/sudoers && \ 21 | echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 22 | echo '## allow password less for docker user' >> /etc/sudoers && \ 23 | echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 24 | echo "docker:tcuser" | chpasswd 25 | -------------------------------------------------------------------------------- /images/10-qemuguestagent/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for _ in {1..10}; do 3 | if [[ -f /run/console-done ]]; then 4 | if [[ ! -f "/home/docker/.ssh/authorized_keys" ]]; then 5 | system-docker exec console sh -c 'echo "docker:tcuser" | chpasswd' > /dev/null 2>&1 6 | fi 7 | break 8 | else 9 | sleep 2 10 | fi 11 | done 12 | 13 | qemu-ga 14 | -------------------------------------------------------------------------------- /images/10-selinuxtools/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/os-fedoraconsole-base 2 | # FROM amd64=fedora:24 arm64=skip arm=skip 3 | RUN dnf install -y iptables openssh-server rsync sudo vim-minimal less ca-certificates psmisc htop procps-ng \ 4 | && rm -rf /etc/ssh/*key* \ 5 | && rm -fr /sbin/poweroff /sbin/shutdown /sbin/reboot /sbin/halt /usr/sbin/poweroff /usr/sbin/shutdown /usr/sbin/reboot /usr/sbin/halt \ 6 | && ln -s /sbin/agetty /sbin/getty 7 | RUN groupadd --gid 1100 rancher \ 8 | && groupadd --gid 1101 docker \ 9 | && useradd -u 1100 -g rancher -G docker,wheel -m -s /bin/bash rancher \ 10 | && useradd -u 1101 -g docker -G docker,wheel -m -s /bin/bash docker \ 11 | && echo ClientAliveInterval 180 >> /etc/ssh/sshd_config \ 12 | && echo '## allow password less for rancher user' >> /etc/sudoers \ 13 | && echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 14 | && echo '## allow password less for docker user' >> /etc/sudoers \ 15 | && echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 16 | && ln -sf /usr/bin/docker.dist /usr/bin/docker 17 | COPY prompt.sh /etc/profile.d/ 18 | 19 | RUN dnf install -y git make gcc findutils selinux-policy-devel setools-console setools-devel \ 20 | && git clone https://github.com/rancher/refpolicy.git /usr/src/refpolicy \ 21 | && cd /usr/src/refpolicy && git submodule init && git submodule update \ 22 | && sed -i '/MONOLITHIC = y/c\MONOLITHIC = n' build.conf \ 23 | && make conf && make && make install-headers 24 | 25 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 26 | -------------------------------------------------------------------------------- /images/10-selinuxtools/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./build 7 | mkdir -p ./build 8 | -------------------------------------------------------------------------------- /images/10-selinuxtools/prompt.sh: -------------------------------------------------------------------------------- 1 | export PS1='[\u@\h \W]\$ ' 2 | -------------------------------------------------------------------------------- /images/10-ubuntuconsole/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/os-ubuntuconsole-base 2 | # FROM amd64=ubuntu:bionic arm64=arm64v8/ubuntu:bionic 3 | 4 | COPY build/sshd_config.append.tpl /etc/ssh/ 5 | 6 | RUN apt-get update \ 7 | && apt-get install -y --no-install-recommends iptables openssh-server rsync locales \ 8 | sudo vim less curl ca-certificates psmisc htop kmod iproute2 \ 9 | net-tools bash-completion iputils-ping wget \ 10 | && rm -rf /var/lib/apt/lists/* \ 11 | && rm -rf /etc/ssh/*key* \ 12 | && locale-gen en_US.UTF-8 \ 13 | && addgroup --gid 1100 rancher \ 14 | && addgroup --gid 1101 docker \ 15 | && useradd -u 1100 -g rancher -G docker,sudo -m -s /bin/bash rancher \ 16 | && useradd -u 1101 -g docker -G docker,sudo -m -s /bin/bash docker \ 17 | && echo '## allow password less for rancher user' >> /etc/sudoers \ 18 | && echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 19 | && echo '## allow password less for docker user' >> /etc/sudoers \ 20 | && echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ 21 | && ln -s /bin/ps /usr/bin/ps \ 22 | && cat /etc/ssh/sshd_config > /etc/ssh/sshd_config.tpl \ 23 | && cat /etc/ssh/sshd_config.append.tpl >> /etc/ssh/sshd_config.tpl \ 24 | && rm -f /etc/ssh/sshd_config.append.tpl /etc/ssh/sshd_config 25 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 26 | -------------------------------------------------------------------------------- /images/10-ubuntuconsole/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./build 7 | mkdir -p ./build 8 | cp ./../02-console/sshd_config.append.tpl ./build/ 9 | -------------------------------------------------------------------------------- /images/10-vboxtools/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcc:7.4.0 as build-essential 2 | ENV KERNEL_VERSION 4.14.138-rancher 3 | 4 | ENV KERNEL_HEADERS https://github.com/rancher/os-kernel/releases/download/v${KERNEL_VERSION}/build-linux-${KERNEL_VERSION}-x86.tar.gz 5 | ENV KERNEL_BASE https://github.com/rancher/os-kernel/releases/download/v${KERNEL_VERSION}/linux-${KERNEL_VERSION}-x86.tar.gz 6 | ENV VBOX_VERSION 5.2.26 7 | ENV VBOX_SHA256 b927c5d0d4c97a9da2522daad41fe96b616ed06bfb0c883f9c42aad2244f7c38 8 | 9 | RUN apt-get update; \ 10 | apt-get install -y --no-install-recommends p7zip-full libelf-dev; \ 11 | apt-get clean; \ 12 | rm -rf /var/lib/apt/* 13 | RUN mkdir -p /usr/src/v${KERNEL_VERSION}; \ 14 | curl -sfL ${KERNEL_BASE} | tar zxf - -C /; \ 15 | curl -sfL ${KERNEL_HEADERS} | tar zxf - -C /usr/src/v${KERNEL_VERSION} 16 | RUN wget -O /vbox.iso "https://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso"; \ 17 | echo "$VBOX_SHA256 */vbox.iso" | sha256sum -c -; \ 18 | 7z x -o/ /vbox.iso VBoxLinuxAdditions.run; \ 19 | rm /vbox.iso; \ 20 | sh /VBoxLinuxAdditions.run --noexec --target /usr/src/vbox; \ 21 | mkdir /usr/src/vbox/amd64; \ 22 | 7z x -so /usr/src/vbox/VBoxGuestAdditions-amd64.tar.bz2 | tar --extract --directory /usr/src/vbox/amd64; \ 23 | rm /usr/src/vbox/VBoxGuestAdditions-*.tar.bz2; \ 24 | ln -sT "vboxguest-$VBOX_VERSION" /usr/src/vbox/amd64/src/vboxguest 25 | RUN make -C /usr/src/vbox/amd64/src/vboxguest -j "$(nproc)" \ 26 | KERN_DIR='/lib/modules/${KERNEL_VERSION}/build' \ 27 | KERN_VER=${KERNEL_VERSION} \ 28 | vboxguest vboxsf 29 | 30 | FROM debian:stable-slim 31 | WORKDIR /dist 32 | RUN apt-get update; \ 33 | apt-get install -y --no-install-recommends kmod; \ 34 | apt-get clean; \ 35 | rm -rf /var/lib/apt/* 36 | COPY run /usr/local/bin/ 37 | COPY --from=build-essential /usr/src/vbox/amd64/src/vboxguest/vboxguest.ko . 38 | COPY --from=build-essential /usr/src/vbox/amd64/src/vboxguest/vboxsf.ko . 39 | COPY --from=build-essential /usr/src/vbox/amd64/other/mount.vboxsf . 40 | COPY --from=build-essential /usr/src/vbox/amd64/sbin/VBoxService /sbin/ 41 | COPY --from=build-essential /usr/src/vbox/amd64/bin/VBoxControl /bin/ 42 | RUN chmod +x /usr/local/bin/run 43 | 44 | CMD ["/usr/local/bin/run"] 45 | 46 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 47 | -------------------------------------------------------------------------------- /images/10-vboxtools/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | _sigProcess() { 4 | echo "SIGINT/SIGTERM signal..." 5 | kill -9 $vboxServicePID 6 | wait 7 | kill -9 $$ 8 | } 9 | trap _sigProcess SIGINT SIGKILL SIGTERM 10 | 11 | kernel_dir=/lib/modules/`uname -r` 12 | if [ ! -d $kernel_dir/extra ];then 13 | mkdir $kernel_dir/extra 14 | else 15 | echo "Directory $kernel_dir/extra already exists." 16 | fi 17 | 18 | lsmod | grep "vboxsf" > /dev/null 2>&1 19 | if [ $? -ne 0 ];then 20 | cp /dist/*.ko $kernel_dir/extra 21 | depmod 22 | modprobe vboxguest 23 | modprobe vboxsf 24 | else 25 | echo "Vbox modules have been loaded." 26 | fi 27 | 28 | for _ in {1..10} 29 | do 30 | if [ -f /run/console-done ];then 31 | system-docker exec console ls /sbin/mount.vboxsf > /dev/null 2>&1 32 | if [ $? -ne 0 ];then 33 | system-docker cp /dist/mount.vboxsf console:/sbin/ 34 | else 35 | echo "/sbin/mount.vboxsf already exists." 36 | fi 37 | break 38 | else 39 | echo "Waiting for the console to start ..." 40 | sleep 2 41 | fi 42 | done 43 | 44 | /sbin/VBoxService --disable-automount --foreground --disable-vminfo & 45 | vboxServicePID=$! 46 | 47 | wait 48 | -------------------------------------------------------------------------------- /images/10-waagent/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | RUN apt-get update && apt-get install -yq --no-install-recommends \ 4 | ifupdown2 \ 5 | ca-certificates \ 6 | openssl \ 7 | sudo \ 8 | net-tools \ 9 | parted \ 10 | iptables \ 11 | eject \ 12 | host \ 13 | python-setuptools \ 14 | openssh-server && \ 15 | apt-get clean && rm -rf /var/lib/apt/lists/* 16 | 17 | ADD WALinuxAgent.tar.gz . 18 | 19 | RUN cd WALinuxAgent-* && \ 20 | sudo python setup.py install && \ 21 | cd .. && \ 22 | rm -rf WALinuxAgent-* && \ 23 | rm -rf WALinuxAgent.tar.gz 24 | 25 | RUN sed -i 's/^#\( AutoUpdate.Enabled=y\)/\1/' /etc/waagent.conf 26 | 27 | ENTRYPOINT ["waagent"] 28 | 29 | RUN addgroup --gid 1100 rancher && \ 30 | addgroup --gid 1101 docker && \ 31 | adduser -q -u 1100 --gid 1100 --shell /bin/bash rancher && \ 32 | adduser -q -u 1101 --gid 1101 --shell /bin/bash docker && \ 33 | adduser docker sudo && \ 34 | sed -i 's/rancher:!/rancher:*/g' /etc/shadow && \ 35 | sed -i 's/docker:!/docker:*/g' /etc/shadow && \ 36 | echo '## allow password less for rancher user' >> /etc/sudoers && \ 37 | echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 38 | echo '## allow password less for docker user' >> /etc/sudoers && \ 39 | echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \ 40 | echo "docker:tcuser" | chpasswd -------------------------------------------------------------------------------- /images/10-waagent/prebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0) 5 | 6 | rm -rf ./WALinuxAgent.tar.gz 7 | 8 | wget https://codeload.github.com/Azure/WALinuxAgent/tar.gz/v2.2.34 -O WALinuxAgent.tar.gz -------------------------------------------------------------------------------- /images/20-amazonmetadata/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.11 2 | # FROM arm64=skip arm=skip 3 | 4 | RUN apk -Uuv add bash jq ca-certificates groff less python py-pip && \ 5 | pip install awscli && \ 6 | apk --purge -v del py-pip && \ 7 | rm /var/cache/apk/* 8 | 9 | ADD ./entry.sh /entry.sh 10 | ADD ./ec2-metadata /lib/ec2-metadata 11 | RUN chmod +x /*.sh 12 | 13 | ENV AWS_METADATA_LOAD "true" 14 | ENV AWS_METADATA_TAG_PREFIXES "docker." 15 | ENV AWS_METADATA_TAG_VARIABLES "" 16 | 17 | ENTRYPOINT [ "/entry.sh" ] 18 | -------------------------------------------------------------------------------- /images/20-amazonmetadata/README.md: -------------------------------------------------------------------------------- 1 | Based on code from https://github.com/efim-a-efim/rancheros-ec2-metadata 2 | 3 | # AWS EC2 Metadata provider for RancherOS 4 | 5 | Intended to use with Autoscaling. 6 | - Adds AWS EC2 metadata to RancherOS environment 7 | - Adds instance tags (filtered) to Docker options 8 | 9 | ## How to use 10 | 11 | You can enable the service using cloud-config: 12 | ``` 13 | services_include: 14 | amazon-metadata: true 15 | ``` 16 | 17 | OR you can start it manually like this: 18 | 19 | ``` 20 | #cloud-config 21 | rancher: 22 | services: 23 | aws-metadata: 24 | image: rancher/os-amazon-metadata:v0.9.2${SUFFIX} 25 | command: -m -t 'com.' -l 'com.environment:ENVIRONMENT' 26 | privileged: true 27 | labels: 28 | io.rancher.os.after: network 29 | io.rancher.os.scope: system 30 | io.rancher.os.reloadconfig: 'true' 31 | io.rancher.os.createonly: 'false' 32 | volumes: 33 | - /usr/bin/ros:/bin/ros:ro 34 | - /var/lib/rancher/conf:/var/lib/rancher/conf:rw 35 | ``` 36 | 37 | ### Options: 38 | * `-m` - put AWS metadata to the Rancher environment vars. Metadata supported: 39 | * AWS_AVAILABILITY_ZONE 40 | * AWS_DEFAULT_REGION 41 | * AWS_IAM_ROLE 42 | * AWS_ACCESS_KEY_ID 43 | * AWS_SECRET_ACCESS_KEY 44 | * AWS_SECURITY_TOKEN 45 | * AWS_INSTANCE_ID 46 | * AWS_AMI_ID 47 | * AWS_AMI_LAUNCH_INDEX 48 | * AWS_AMI_MANIFEST_PATH 49 | * AWS_ANCESTOR_AMI_IDS 50 | * AWS_HOSTNAME 51 | * AWS_LOCAL_HOSTNAME 52 | * AWS_INSTANCE_ACTION 53 | * AWS_INSTANCE_TYPE 54 | * AWS_LOCAL_IPV4 55 | * AWS_PUBLIC_IPV4 56 | * AWS_SECURITY_GROUPS 57 | * `-t [prefix]` - load EC2 instance tags starting with `prefix` and add them as labels to docker daemon options 58 | * `-l label:variablename` - add `variablename` variable to RancherOS environment that contains value of `label` tag. May be used multiple times 59 | * `-l label:config.path` - add value of `label` tag to `config.path` RancherOS config path. Works when `config.path` has `.` inside. 60 | 61 | ### Configuration environment variables 62 | * `AWS_METADATA_LOAD` (`true`|`false`) - load metadata from AWS and add corresponding environment variables. See `-m` above. 63 | * `AWS_METADATA_TAG_PREFIXES` (list, separated by `;`) - see `-t` above 64 | * `AWS_METADATA_TAG_VARIABLES` (list, separated by `;`) - see `-l` for variables above -------------------------------------------------------------------------------- /images/20-amazonmetadata/ec2-metadata/ec2-metadata.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "#cloud-config" 3 | echo "rancher:" 4 | echo " environment:" 5 | 6 | echo " AWS_AVAILABILITY_ZONE: ${AWS_AVAILABILITY_ZONE}" 7 | echo " AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION}" 8 | 9 | if [ "${AWS_IAM_ROLE}" ]; then 10 | echo " AWS_IAM_ROLE: ${AWS_IAM_ROLE}" 11 | echo " AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}" 12 | echo " AWS_SECRET_ACCESS_KE: ${AWS_SECRET_ACCESS_KEY}" 13 | echo " AWS_SECURITY_TOKEN: ${AWS_SECURITY_TOKEN}" 14 | fi 15 | echo " AWS_INSTANCE_ID: ${AWS_INSTANCE_ID}" 16 | 17 | echo " AWS_AMI_ID: $(wget -O- -q "http://169.254.169.254/latest/meta-data/ami-id" 2>/dev/null)" 18 | echo " AWS_AMI_LAUNCH_INDEX: $(wget -O- -q "http://169.254.169.254/latest/meta-data/ami-launch-index" 2>/dev/null)" 19 | echo " AWS_AMI_MANIFEST_PATH: $(wget -O- -q "http://169.254.169.254/latest/meta-data/ami-manifest-path" 2>/dev/null)" 20 | echo " AWS_ANCESTOR_AMI_IDS: $(wget -O- -q "http://169.254.169.254/latest/meta-data/ancestor-ami-ids" 2>/dev/null)" 21 | echo " AWS_HOSTNAME: $(wget -O- -q "http://169.254.169.254/latest/meta-data/hostname" 2>/dev/null)" 22 | echo " AWS_LOCAL_HOSTNAME: $(wget -O- -q "http://169.254.169.254/latest/meta-data/local-hostname" 2>/dev/null)" 23 | echo " AWS_INSTANCE_ACTION: $(wget -O- -q "http://169.254.169.254/latest/meta-data/instance-action" 2>/dev/null)" 24 | 25 | echo " AWS_INSTANCE_TYPE: $(wget -O- -q "http://169.254.169.254/latest/meta-data/instance-type" 2>/dev/null)" 26 | echo " AWS_LOCAL_IPV4: $(wget -O- -q "http://169.254.169.254/latest/meta-data/local-ipv4" 2>/dev/null)" 27 | echo " AWS_PUBLIC_IPV4: $(wget -O- -q "http://169.254.169.254/latest/meta-data/public-ipv4" 2>/dev/null)" 28 | echo " AWS_SECURITY_GROUPS: $(wget -O- -q "http://169.254.169.254/latest/meta-data/security-groups" 2>/dev/null)" 29 | -------------------------------------------------------------------------------- /images/20-amazonmetadata/ec2-metadata/ec2-tag-to-env.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | INSTANCE="${1}" 3 | label=$(echo "$2" | cut -d ':' -f 1) 4 | var=$(echo "$2" | cut -d ':' -f 2-) 5 | 6 | if [ -z "${label}" -o -z "${var}" ]; then 7 | echo "Bad args format" 8 | exit 1 9 | fi 10 | 11 | echo "#cloud-config" 12 | echo "rancher:" 13 | echo " environment:" 14 | 15 | TAG_VAL=$(aws ec2 describe-tags --region "${AWS_DEFAULT_REGION}" --filters "Name=key,Values=${label}" "Name=resource-id,Values=${INSTANCE}" 2>/dev/null | jq -r -j ".Tags[] | \"\(.Value)\"" 2>/dev/null) 16 | 17 | echo " ${var}: ${TAG_VAL}" 18 | -------------------------------------------------------------------------------- /images/20-amazonmetadata/ec2-metadata/ec2-tags.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | INSTANCE="${1}" 3 | TAG_FILTER='' 4 | [ "$2" ] && TAG_FILTER="| select(.Key|startswith(\"${2}\"))" 5 | 6 | echo "#cloud-config" 7 | echo "rancher:" 8 | echo " docker:" 9 | echo " args:" 10 | 11 | ros config get rancher.docker.args | grep -v '\[\]' | grep -v '^\s*$' | sed 's/^/ /' 12 | 13 | aws ec2 describe-tags --region "${AWS_DEFAULT_REGION}" --filters "Name=resource-id,Values=${INSTANCE}" 2>/dev/null \ 14 | | jq -r ".Tags[] ${TAG_FILTER} | \"\(.Key)=\(.Value)\"" 2>/dev/null \ 15 | | while read label; do 16 | echo " - --label" 17 | echo " - ${label}" 18 | done 19 | -------------------------------------------------------------------------------- /images/20-amazonmetadata/ec2-metadata/set-config.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | [ -f "$1" ] || exit 1 4 | 5 | ros config merge < "${1}" 6 | -------------------------------------------------------------------------------- /images/20-amazonmetadata/entry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | LIB_PATH="/lib/ec2-metadata" 3 | 4 | # Basic metadata 5 | export AWS_AVAILABILITY_ZONE="$(wget -O- -q http://169.254.169.254/latest/meta-data/placement/availability-zone 2>/dev/null)" 6 | export AWS_DEFAULT_REGION="${AWS_AVAILABILITY_ZONE%?}" 7 | export AWS_IAM_ROLE="$(wget -O- -q "http://169.254.169.254/latest/meta-data/iam/info" 2>/dev/null | grep 'InstanceProfileArn' | tr -d ' ",' | cut -d '/' -f 2)" 8 | if [ "${AWS_IAM_ROLE}" ]; then 9 | export AWS_ACCESS_KEY_ID="$(wget -O- -q "http://169.254.169.254/latest/meta-data/iam/security-credentials/${AWS_IAM_ROLE}" 2>/dev/null | grep 'AccessKeyId' | tr -d ' ",' | cut -d ':' -f 2)" 10 | export AWS_SECRET_ACCESS_KEY="$(wget -O- -q "http://169.254.169.254/latest/meta-data/iam/security-credentials/${AWS_IAM_ROLE}" 2>/dev/null | grep 'SecretAccessKey' | tr -d ' ",' | cut -d ':' -f 2)" 11 | export AWS_SECURITY_TOKEN="$(wget -O- -q "http://169.254.169.254/latest/meta-data/iam/security-credentials/${AWS_IAM_ROLE}" 2>/dev/null | grep 'Token' | tr -d ' ",' | cut -d ':' -f 2)" 12 | fi 13 | export AWS_INSTANCE_ID="$(wget -O- -q "http://169.254.169.254/latest/meta-data/instance-id" 2>/dev/null)" 14 | 15 | while getopts ':t:e:m' opt; do 16 | case "$opt" in 17 | t) 18 | bash "${LIB_PATH}/ec2-tags.sh" "${AWS_INSTANCE_ID}" "${OPTARG}" | ros config merge 19 | ;; 20 | m) 21 | bash "${LIB_PATH}/ec2-metadata.sh" | ros config merge 22 | ;; 23 | e) 24 | bash "${LIB_PATH}/ec2-tag-to-env.sh" "${AWS_INSTANCE_ID}" "${OPTARG}" | ros config merge 25 | ;; 26 | ?) 27 | echo "Unsupported option -$OPTARG" 28 | ;; 29 | :) 30 | case "$OPTARG" in 31 | t) 32 | bash "${LIB_PATH}/ec2-tags.sh" "${AWS_INSTANCE_ID}" 'docker.' | ros config merge 33 | ;; 34 | *) 35 | echo "Argument required for -$OPTARG" 36 | ;; 37 | esac 38 | ;; 39 | esac 40 | done 41 | shift $((OPTIND-1)) 42 | 43 | if [ "${AWS_METADATA_LOAD}" = 'true' ]; then 44 | bash "${LIB_PATH}/ec2-metadata.sh" | ros config merge 45 | fi 46 | 47 | if [ "${AWS_METADATA_TAG_PREFIXES}" ]; then 48 | echo "${AWS_METADATA_TAG_PREFIXES}" | while read -d ';' tag; do 49 | bash "${LIB_PATH}/ec2-tags.sh" "${AWS_INSTANCE_ID}" "${tag}" | ros config merge 50 | done 51 | fi 52 | 53 | if [ "${AWS_METADATA_TAG_VARIABLES}" ]; then 54 | echo "${AWS_METADATA_TAG_VARIABLES}" | while read -d ';' tag; do 55 | bash "${LIB_PATH}/ec2-tag-to-env.sh" "${AWS_INSTANCE_ID}" "${tag}" | ros config merge 56 | done 57 | fi 58 | -------------------------------------------------------------------------------- /images/20-iscsi/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcc:7.4.0 2 | # FROM arm64=arm64v8/gcc:7.4.0 3 | 4 | RUN apt-get update \ 5 | && apt-get install -yq --no-install-recommends \ 6 | libssl-dev libmount-dev \ 7 | kmod \ 8 | parted lsscsi ksh curl git \ 9 | && rm -rf /var/lib/apt/lists/* 10 | 11 | WORKDIR /dist 12 | COPY entry.sh /dist/ 13 | COPY build.sh /dist/ 14 | COPY wonka.sh /dist/ 15 | COPY Dockerfile.iscsi-tools /dist/ 16 | 17 | CMD ["/dist/build.sh"] 18 | 19 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 20 | -------------------------------------------------------------------------------- /images/20-iscsi/Dockerfile.iscsi-tools: -------------------------------------------------------------------------------- 1 | FROM ubuntu:bionic 2 | # FROM arm64=arm64v8/ubuntu:bionic 3 | 4 | RUN apt-get update \ 5 | && apt-get install -yq \ 6 | libssl1.0.0 \ 7 | libmount1 8 | 9 | ADD entry.sh /usr/local/bin/ 10 | ADD sbin/* /sbin/ 11 | ADD etc/iscsi/ /etc/iscsi/ 12 | ADD etc/isns/ /etc/isns/ 13 | ADD usr/local/sbin/* /usr/local/sbin/ 14 | #ADD usr/local/bin/* /usr/local/bin/ 15 | ADD usr/local/lib/* /usr/local/lib/ 16 | #ADD usr/local/libexec/* /usr/local/libexec/ 17 | ADD setup_wonka.sh /setup_wonka.sh 18 | 19 | RUN mkdir -p /run/lock 20 | 21 | ENTRYPOINT ["/usr/local/bin/entry.sh"] 22 | -------------------------------------------------------------------------------- /images/20-iscsi/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -ex 3 | 4 | 5 | KERNEL_VERSION=$(uname -r) 6 | echo "open-iscsi for ${KERNEL_VERSION}" 7 | 8 | DIR=/lib/modules/${KERNEL_VERSION}/build 9 | STAMP=/lib/modules/${KERNEL_VERSION}/.open-iscsi-done 10 | 11 | if [ -e $STAMP ]; then 12 | modprobe iscsi_tcp 13 | system-docker run --rm iscsi-tools cat /setup_wonka.sh > /setup_wonka.sh 14 | chmod 755 /setup_wonka.sh 15 | # setup wonka in the console container 16 | /setup_wonka.sh console 17 | 18 | echo open-iscsi for ${KERNEL_VERSION} already installed. Delete $STAMP to reinstall 19 | exit 0 20 | fi 21 | 22 | #TODO: test that the headers are there 23 | #TODO: or, if we continue to be able to use the docker daemon, can we use ros to enable and up it? 24 | ros service enable kernel-headers-system-docker 25 | ros service up kernel-headers-system-docker 26 | 27 | 28 | VERSION="0.98" 29 | curl -sL https://github.com/open-iscsi/open-isns/archive/v${VERSION}.tar.gz > open-isns${VERSION}.tar.gz 30 | tar zxvf open-isns${VERSION}.tar.gz 31 | rm -rf /dist/isns 32 | mv open-isns-${VERSION}/ /dist/isns/ 33 | 34 | VERSION="2.0.873" 35 | curl -sL https://github.com/open-iscsi/open-iscsi/archive/${VERSION}.tar.gz > open-iscsi${VERSION}.tar.gz 36 | tar zxvf open-iscsi${VERSION}.tar.gz 37 | rm -rf /dist/iscsi 38 | mv open-iscsi-${VERSION}/ /dist/iscsi/ 39 | 40 | cd /dist/isns 41 | ./configure 42 | make -s -j$(nproc) 43 | #make install 44 | #make install_hdrs 45 | #make install_lib 46 | 47 | cd /dist/iscsi 48 | make -s -j$(nproc) 49 | #make install 50 | 51 | # last layer - we could use stratos :) 52 | cd /dist/isns 53 | make DESTDIR=/dist/arch install 54 | make DESTDIR=/dist/arch install_hdrs 55 | make DESTDIR=/dist/arch install_lib 56 | cd /dist/iscsi 57 | make DESTDIR=/dist/arch install 58 | cd /dist 59 | 60 | cp /dist/Dockerfile.iscsi-tools /dist/arch/Dockerfile 61 | cp /dist/entry.sh /dist/arch/ 62 | 63 | # how do I export the commands to the console? 64 | # in the future, it'd be nice to have some share /usr/local/bin, but that might interfere with other things. 65 | # we do seem to have /opt mapped 66 | echo "#!/bin/sh" > /dist/arch/setup_wonka.sh 67 | echo "echo installing wonka bin links in \${1}" >> /dist/arch/setup_wonka.sh 68 | chmod 755 /dist/arch/setup_wonka.sh 69 | #for i in $(ls arch/usr/local/bin); do 70 | # echo "system-docker cp wonka.sh \${1}:/usr/bin/$i" >> /dist/arch/setup_wonka.sh 71 | #done 72 | for i in $(ls arch/usr/local/sbin); do 73 | echo "system-docker cp wonka.sh \${1}:usr/sbin/$i" >> /dist/arch/setup_wonka.sh 74 | done 75 | for i in $(ls arch/sbin); do 76 | echo "system-docker cp wonka.sh \${1}:/sbin/$i" >> /dist/arch/setup_wonka.sh 77 | done 78 | chmod 755 /dist/arch/setup_wonka.sh 79 | 80 | if [ "XX$HTTP_PROXY" != "XX" ]; then 81 | BUILD_ARGS="--build-arg HTTP_PROXY --build-arg http_proxy="$HTTP_PROXY 82 | fi 83 | 84 | if [ "XX$HTTPS_PROXY" != "XX" ]; then 85 | BUILD_ARGS=$BUILD_ARGS" --build-arg HTTPS_PROXY --build-arg https_proxy="$HTTPS_PROXY 86 | fi 87 | 88 | if [ "XX$NO_PROXY" != "XX" ]; then 89 | BUILD_ARGS=$BUILD_ARGS" --build-arg NO_PROXY --build-arg no_proxy="$NO_PROXY 90 | fi 91 | 92 | system-docker build --network=host $BUILD_ARGS -t iscsi-tools arch/ 93 | 94 | modprobe iscsi_tcp 95 | 96 | # setup wonka in the console container 97 | /dist/arch/setup_wonka.sh console 98 | 99 | touch $STAMP 100 | echo open-iscsi for ${KERNEL_VERSION} installed. Delete $STAMP to reinstall 101 | -------------------------------------------------------------------------------- /images/20-iscsi/entry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mount --rbind /host/dev /dev > /dev/null 2>&1 3 | mkdir -p /run/lock 4 | exec "$@" 5 | -------------------------------------------------------------------------------- /images/20-iscsi/wonka.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exec system-docker run --rm --privileged \ 4 | --pid host \ 5 | --net host \ 6 | --ipc host \ 7 | -v /mnt:/mnt:shared \ 8 | -v /media:/media:shared \ 9 | -v /dev:/host/dev \ 10 | -v /run:/run \ 11 | -v /etc/iscsi/nodes/:/etc/iscsi/nodes/ \ 12 | -v /etc/iscsi/send_targets/:/etc/iscsi/send_targets/ \ 13 | iscsi-tools $(basename $0) $@ 14 | -------------------------------------------------------------------------------- /images/20-nvidiadriver/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7 2 | # FROM amd64=centos:7.4.1708 arm64=arm64v8/centos:7 3 | 4 | ENV distribution centos7 5 | 6 | RUN yum install -y iptables openssh-server rsync sudo vim less ca-certificates psmisc htop procps-ng iproute curl\ 7 | gcc kernel-devel kernel-headers \ 8 | && yum clean all \ 9 | && rm -rf /etc/ssh/*key* 10 | 11 | RUN echo "KERNEL_VERSION" = ${distribution} 12 | 13 | RUN curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | \ 14 | sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo 15 | 16 | RUN yum install -y nvidia-container-runtime 17 | 18 | WORKDIR /dist 19 | COPY build.sh /dist/ 20 | COPY ubuntu-build.sh /dist/ 21 | 22 | RUN chmod 755 /dist/build.sh 23 | 24 | CMD ["/dist/build.sh"] 25 | 26 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] -------------------------------------------------------------------------------- /images/20-nvidiadriver/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -ex 3 | 4 | BUILD_DIR=/tmp 5 | LOCAL_PATH=${BUILD_DIR}/usr/local 6 | CONF_PATH=/etc/docker 7 | 8 | TAR_URL=https://github.com/NVIDIA/libnvidia-container/releases/download/v1.0.0-beta.1 9 | TAR_FILE=libnvidia-container_1.0.0-beta.1_x86_64.tar.xz 10 | 11 | if [ ! -e $CONF_PATH ]; then 12 | mkdir -p ${CONF_PATH} 13 | 14 | fi 15 | 16 | sudo tee ${CONF_PATH}/daemon.json < /dev/null 42 | if [ $? -eq 0 ]; then 43 | cp ubuntu-build.sh ${LOCAL_PATH}/build.sh 44 | chmod 755 ${LOCAL_PATH}/build.sh 45 | fi -------------------------------------------------------------------------------- /images/20-nvidiadriver/ubuntu-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -ex 3 | 4 | BUILD_DIR=/var/lib/rancher/nvidia 5 | KERNEL_VERSION=$(uname -r) 6 | 7 | NVIDIA_VERSION=390.48 8 | NVIDIA_DRIVER=NVIDIA-Linux-x86_64-${NVIDIA_VERSION}.run 9 | CUDA_PKG=cuda-repo-ubuntu1604_9.1.85-1_amd64.deb 10 | 11 | apt-get update && apt-get upgrade -y 12 | apt install gcc make curl -y 13 | curl -sL http://us.download.nvidia.com/XFree86/Linux-x86_64/${NVIDIA_VERSION}/${NVIDIA_DRIVER} -o ${BUILD_DIR}/${NVIDIA_DRIVER} 14 | ros service enable kernel-headers 15 | ros service up kernel-headers 16 | 17 | sh ${BUILD_DIR}/${NVIDIA_DRIVER} --no-drm 18 | 19 | if [ ! -e /usr/bin/nvidia-container-cli ]; then 20 | ln -s ${BUILD_DIR}/bin/nvidia-container-cli /usr/bin/nvidia-container-cli 21 | fi 22 | if [ ! -e /usr/bin/nvidia-container-runtime ]; then 23 | ln -s ${BUILD_DIR}/bin/nvidia-container-runtime /usr/bin/nvidia-container-runtime 24 | fi 25 | if [ ! -e /usr/bin/nvidia-container-runtime-hook ]; then 26 | ln -s ${BUILD_DIR}/bin/nvidia-container-runtime-hook /usr/bin/nvidia-container-runtime-hook 27 | fi 28 | if [ ! -e /usr/lib/libnvidia-container.so.1 ]; then 29 | ln -s ${BUILD_DIR}/lib/libnvidia-container.so.1 /usr/lib/libnvidia-container.so.1 30 | fi 31 | 32 | curl -sL http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/${CUDA_PKG} -o ${BUILD_DIR}/${CUDA_PKG} 33 | dpkg -i ${BUILD_DIR}/${CUDA_PKG} 34 | apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub 35 | apt-get update 36 | apt-get install -y cuda 37 | 38 | echo "Cleaning kernel headers && cache" 39 | ros service disable kernel-headers 40 | rm -rf /lib/modules/${KERNEL_VERSION}/build/ && rm -f /lib/modules/${KERNEL_VERSION}/.headers-done 41 | rm -rf ${BUILD_DIR}/${NVIDIA_DRIVER} 42 | rm -rf ${BUILD_DIR}/${CUDA_PKG} 43 | 44 | system-docker restart docker -------------------------------------------------------------------------------- /images/20-volumenetshare/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | # FROM arm64=skip arm=skip 3 | 4 | ARG netshare_plugin_version=0.19 5 | 6 | RUN apk add --update wget nfs-utils ca-certificates &&\ 7 | rm -rf /var/cache/apk/* &&\ 8 | update-ca-certificates 9 | 10 | RUN wget -O /usr/bin/docker-volume-netshare https://github.com/ContainX/docker-volume-netshare/releases/download/v${netshare_plugin_version}/docker-volume-netshare_${netshare_plugin_version}_linux_amd64-bin \ 11 | && chmod +x /usr/bin/docker-volume-netshare 12 | 13 | ENTRYPOINT ["/usr/bin/docker-volume-netshare"] 14 | CMD ["efs"] 15 | -------------------------------------------------------------------------------- /images/20-volumenetshare/README.md: -------------------------------------------------------------------------------- 1 | # docker-volume-netshare in container 2 | 3 | You can enable the service using cloud-config (use corresponding volume type or enable all): 4 | ``` 5 | services_include: 6 | volume-efs: true 7 | volume-nfs: true 8 | volume-cifs: true 9 | ``` 10 | 11 | Additional options may be specified through environment: 12 | * `VOLUME_CIFS_OPTIONS` 13 | * `VOLUME_EFS_OPTIONS` 14 | * `VOLUME_NFS_OPTIONS` 15 | 16 | ## AWS EFS 17 | 18 | Add following settings to your cloud-config: 19 | ``` 20 | services_include: 21 | amazon-metadata: true 22 | volume-efs: true 23 | ``` 24 | 25 | Use Docker volumes: 26 | ``` 27 | my-application: 28 | image: me/my-application 29 | volume_driver: efs 30 | volumes: 31 | - fs-XXyyZZtt:/data 32 | ``` 33 | -------------------------------------------------------------------------------- /images/20-zfs/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcc:7.4.0 2 | # FROM arm64=arm64v8/gcc:7.4.0 3 | 4 | RUN apt-get update \ 5 | && apt-get install -yq --no-install-recommends \ 6 | zlib1g-dev uuid-dev libattr1-dev libblkid-dev libselinux-dev libudev-dev libssl-dev libelf-dev \ 7 | kmod \ 8 | parted lsscsi ksh curl git \ 9 | && rm -rf /var/lib/apt/lists/* 10 | 11 | WORKDIR /dist 12 | COPY entry.sh /dist/ 13 | COPY build.sh /dist/ 14 | COPY wonka.sh /dist/ 15 | COPY Dockerfile.zfs-tools /dist/ 16 | 17 | CMD ["/dist/build.sh"] 18 | 19 | ENTRYPOINT ["/usr/bin/ros", "entrypoint"] 20 | -------------------------------------------------------------------------------- /images/20-zfs/Dockerfile.zfs-tools: -------------------------------------------------------------------------------- 1 | FROM ubuntu:bionic 2 | # FROM arm64=arm64v8/ubuntu:bionic 3 | 4 | RUN apt-get update \ 5 | && apt-get install -yq python \ 6 | && rm -rf /var/lib/apt/lists/* 7 | 8 | ADD entry.sh /usr/local/bin/ 9 | ADD sbin/* /sbin/ 10 | ADD usr/local/sbin/* /usr/local/sbin/ 11 | ADD usr/local/bin/* /usr/local/bin/ 12 | ADD usr/local/lib/* /usr/local/lib/ 13 | ADD usr/local/libexec/* /usr/local/libexec/ 14 | ADD setup_wonka.sh /setup_wonka.sh 15 | ADD lib/udev/zvol_id /lib/udev/zvol_id 16 | ADD lib/udev/vdev_id /lib/udev/vdev_id 17 | ADD lib/udev/rules.d/60-zvol.rules /lib/udev/rules.d/60-zvol.rules 18 | ADD lib/udev/rules.d/69-vdev.rules /lib/udev/rules.d/69-vdev.rules 19 | ADD lib/udev/rules.d/90-zfs.rules /lib/udev/rules.d/90-zfs.rules 20 | 21 | # fix build warnings 22 | RUN mv /usr/local/lib/libnvpair.so.1 /usr/local/lib/libnvpair.so.1.file 23 | RUN ln -s /usr/local/lib/libnvpair.so.1.file /usr/local/lib/libnvpair.so.1 24 | RUN mv /usr/local/lib/libzfs_core.so.1 /usr/local/lib/libzfs_core.so.1.file 25 | RUN ln -s /usr/local/lib/libzfs_core.so.1.file /usr/local/lib/libzfs_core.so.1 26 | RUN mv /usr/local/lib/libuutil.so.1 /usr/local/lib/libuutil.so.1.file 27 | RUN ln -s /usr/local/lib/libuutil.so.1.file /usr/local/lib/libuutil.so.1 28 | RUN mv /usr/local/lib/libzfs.so.2 /usr/local/lib/libzfs.so.2.file 29 | RUN ln -s /usr/local/lib/libzfs.so.2.file /usr/local/lib/libzfs.so.2 30 | RUN mv /usr/local/lib/libzpool.so.2 /usr/local/lib/libzpool.so.2.file 31 | RUN ln -s /usr/local/lib/libzpool.so.2.file /usr/local/lib/libzpool.so.2 32 | 33 | ENV PATH=$PATH:/usr/local/lib 34 | ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 35 | 36 | RUN ldconfig 37 | 38 | ENTRYPOINT ["/usr/local/bin/entry.sh"] 39 | -------------------------------------------------------------------------------- /images/20-zfs/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -ex 3 | 4 | 5 | KERNEL_VERSION=$(uname -r) 6 | echo "zfs for ${KERNEL_VERSION}" 7 | 8 | DIR=/lib/modules/${KERNEL_VERSION}/build 9 | STAMP=/lib/modules/${KERNEL_VERSION}/.zfs-done 10 | 11 | if [ -e $STAMP ]; then 12 | modprobe zfs 13 | 14 | system-docker run --rm zfs-tools cat /setup_wonka.sh > /setup_wonka.sh 15 | chmod 755 /setup_wonka.sh 16 | # setup wonka in the console container 17 | /setup_wonka.sh console 18 | # setup wonka in this container so the import works 19 | /setup_wonka.sh zfs 20 | 21 | # re-init the zpool from disk 22 | zpool import -a 23 | echo ZFS for ${KERNEL_VERSION} already installed. Delete $STAMP to reinstall 24 | exit 0 25 | fi 26 | 27 | #TODO: test that the headers are there 28 | #TODO: or, if we continue to be able to use the docker daemon, can we use ros to enable and up it? 29 | ros service enable kernel-headers-system-docker 30 | ros service up kernel-headers-system-docker 31 | 32 | 33 | # get the zfs source as per https://github.com/zfsonlinux/zfs/wiki/Building-ZFS 34 | VERSION="0.7.13" 35 | curl -sL https://github.com/zfsonlinux/zfs/releases/download/zfs-${VERSION}/spl-${VERSION}.tar.gz > spl-${VERSION}.tar.gz 36 | curl -sL https://github.com/zfsonlinux/zfs/releases/download/zfs-${VERSION}/zfs-${VERSION}.tar.gz > zfs-${VERSION}.tar.gz 37 | mkdir -p spl 38 | tar zxvf spl-${VERSION}.tar.gz --strip-components=1 -C spl 39 | mkdir -p zfs 40 | tar zxvf zfs-${VERSION}.tar.gz --strip-components=1 -C zfs 41 | 42 | #if [ -d "spl" ]; then 43 | # cd spl 44 | # git pull 45 | # cd .. 46 | #else 47 | # git clone https://github.com/zfsonlinux/spl 48 | #fi 49 | #if [ -d "zfs" ]; then 50 | # cd zfs 51 | # git pull 52 | # cd .. 53 | #else 54 | # git clone https://github.com/zfsonlinux/zfs 55 | #fi 56 | #if [ "$(echo ${KERNEL_VERSION} | cut -c1-3)" = "4.9" ]; then 57 | # echo "Detected $KERNEL_VERSION, using zfs master for now" 58 | # cd spl 59 | # git checkout master 60 | # cd .. 61 | # cd zfs 62 | # git checkout master 63 | # cd .. 64 | #else 65 | # cd spl 66 | # git checkout spl-0.6.5-release 67 | # cd .. 68 | # cd zfs 69 | # git checkout zfs-0.6.5-release 70 | # cd .. 71 | #fi 72 | # 73 | 74 | # get headers for the kernel we're building for 75 | #ENV LINUX 4.9.2-rancher 76 | #RUN curl -sL https://github.com/rancher/os-kernel/releases/download/v${LINUX}/build-linux-${LINUX}-x86.tar.gz > build-linux-${LINUX}-x86.tar.gz 77 | # 78 | #RUN mkdir ${LINUX} 79 | #RUN cd ${LINUX} 80 | #tar zxvf ../build-linux-${LINUX}-x86.tar.gz 81 | 82 | 83 | # --prefix=/dist 84 | cd /dist/spl 85 | sh ./autogen.sh 86 | ./configure \ 87 | --with-linux=${DIR} 88 | make -s -j$(nproc) 89 | 90 | cd /dist/zfs 91 | sh ./autogen.sh 92 | ./configure \ 93 | --with-linux=${DIR} 94 | make -s -j$(nproc) 95 | 96 | # last layer - we could use stratos :) 97 | cd /dist/spl 98 | make DESTDIR=/dist/arch install 99 | cd /dist/zfs 100 | make DESTDIR=/dist/arch install 101 | cd /dist 102 | 103 | cp -r /dist/arch/lib/modules/${KERNEL_VERSION}/extra /lib/modules/${KERNEL_VERSION}/ 104 | depmod 105 | 106 | cd /dist/zfs 107 | LIB_DIR=/dist/arch/usr/local/lib scripts/zfs-helpers.sh -i 108 | cd /dist 109 | 110 | cp /dist/Dockerfile.zfs-tools /dist/arch/Dockerfile 111 | cp /dist/entry.sh /dist/arch/ 112 | 113 | # how do I export the commands to the console? 114 | # in the future, it'd be nice to have some share /usr/local/bin, but that might interfere with other things. 115 | # we do seem to have /opt mapped 116 | echo "#!/bin/sh" > /dist/arch/setup_wonka.sh 117 | echo "echo installing wonka bin links in \${1}" >> /dist/arch/setup_wonka.sh 118 | chmod 755 /dist/arch/setup_wonka.sh 119 | for i in $(ls arch/usr/local/bin); do 120 | echo "system-docker cp wonka.sh \${1}:/usr/bin/$i" >> /dist/arch/setup_wonka.sh 121 | done 122 | for i in $(ls arch/usr/local/sbin); do 123 | echo "system-docker cp wonka.sh \${1}:usr/sbin/$i" >> /dist/arch/setup_wonka.sh 124 | done 125 | for i in $(ls arch/sbin); do 126 | echo "system-docker cp wonka.sh \${1}:/sbin/$i" >> /dist/arch/setup_wonka.sh 127 | done 128 | for i in $(ls arch/usr/local/lib); do 129 | echo "system-docker cp wonka.sh \${1}:usr/lib/$i" >> /dist/arch/setup_wonka.sh 130 | done 131 | 132 | system-docker cp arch/lib/udev/zvol_id udev:/lib/udev/zvol_id 133 | system-docker cp arch/lib/udev/vdev_id udev:/lib/udev/vdev_id 134 | system-docker cp arch/lib/udev/rules.d/60-zvol.rules udev:/etc/udev/rules.d/60-zvol.rules 135 | system-docker cp arch/lib/udev/rules.d/69-vdev.rules udev:/etc/udev/rules.d/69-vdev.rules 136 | system-docker cp arch/lib/udev/rules.d/90-zfs.rules udev:/etc/udev/rules.d/90-zfs.rules 137 | 138 | if [ "XX$HTTP_PROXY" != "XX" ]; then 139 | BUILD_ARGS="--build-arg HTTP_PROXY --build-arg http_proxy="$HTTP_PROXY 140 | fi 141 | 142 | if [ "XX$HTTPS_PROXY" != "XX" ]; then 143 | BUILD_ARGS=$BUILD_ARGS" --build-arg HTTPS_PROXY --build-arg https_proxy="$HTTPS_PROXY 144 | fi 145 | 146 | if [ "XX$NO_PROXY" != "XX" ]; then 147 | BUILD_ARGS=$BUILD_ARGS" --build-arg NO_PROXY --build-arg no_proxy="$NO_PROXY 148 | fi 149 | 150 | system-docker build --network=host $BUILD_ARGS -t zfs-tools arch/ 151 | 152 | modprobe zfs 153 | 154 | /dist/arch/setup_wonka.sh console 155 | /dist/arch/setup_wonka.sh zfs 156 | zpool import -a 157 | 158 | touch $STAMP 159 | echo ZFS for ${KERNEL_VERSION} installed. Delete $STAMP to reinstall 160 | -------------------------------------------------------------------------------- /images/20-zfs/entry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mount --rbind /host/dev /dev > /dev/null 2>&1 3 | zpool import -a > /dev/null 2>&1 4 | exec "$@" 5 | -------------------------------------------------------------------------------- /images/20-zfs/wonka.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exec system-docker run --rm --privileged \ 4 | --pid host \ 5 | --net host \ 6 | --ipc host \ 7 | -v /mnt:/mnt:shared \ 8 | -v /media:/media:shared \ 9 | -v /dev:/host/dev \ 10 | -v /run:/run \ 11 | zfs-tools $(basename $0) "$@" 12 | -------------------------------------------------------------------------------- /index.yml: -------------------------------------------------------------------------------- 1 | services: 2 | - amazon-ecs-agent 3 | - container-cron 4 | - open-iscsi 5 | - zfs 6 | - kernel-extras 7 | - kernel-headers 8 | - kernel-headers-system-docker 9 | - open-vm-tools 10 | - hyperv-vm-tools 11 | - qemu-guest-agent 12 | - rancher-server 13 | - rancher-server-stable 14 | - amazon-metadata 15 | - volume-cifs 16 | - volume-efs 17 | - volume-nfs 18 | - modem-manager 19 | - waagent 20 | - virtualbox-tools 21 | - pingan-amc 22 | consoles: 23 | - alpine 24 | - centos 25 | - debian 26 | - fedora 27 | - ubuntu 28 | engines: 29 | - docker-1.12.6 30 | - docker-1.13.1 31 | - docker-17.03.1-ce 32 | - docker-17.03.2-ce 33 | - docker-17.06.1-ce 34 | - docker-17.06.2-ce 35 | - docker-17.09.0-ce 36 | - docker-17.09.1-ce 37 | - docker-17.12.0-ce 38 | - docker-17.12.1-ce 39 | - docker-18.03.0-ce 40 | - docker-18.03.1-ce 41 | - docker-18.06.0-ce 42 | - docker-18.06.1-ce 43 | - docker-18.06.2-ce 44 | - docker-18.06.3-ce 45 | - docker-18.09.0 46 | - docker-18.09.1 47 | - docker-18.09.2 48 | - docker-18.09.3 49 | - docker-18.09.4 50 | - docker-18.09.5 51 | - docker-18.09.6 52 | - docker-18.09.7 53 | - docker-18.09.8 54 | - docker-18.09.9 55 | - docker-19.03.0 56 | - docker-19.03.1 57 | - docker-19.03.2 58 | - docker-19.03.3 59 | - docker-19.03.4 60 | - docker-19.03.5 61 | - docker-19.03.7 62 | - docker-19.03.8 63 | - docker-19.03.9 64 | - docker-19.03.11 65 | -------------------------------------------------------------------------------- /k/kernel-extras.yml: -------------------------------------------------------------------------------- 1 | kernel-extras: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-extras:${KERNEL_VERSION}${SUFFIX} 3 | labels: 4 | io.rancher.os.detach: "false" 5 | io.rancher.os.after: "network" 6 | io.rancher.os.scope: "system" 7 | volumes: 8 | - /usr/src:/usr/src 9 | - /lib/modules:/lib/modules 10 | - /lib/firmware:/lib/firmware 11 | -------------------------------------------------------------------------------- /k/kernel-headers-system-docker.yml: -------------------------------------------------------------------------------- 1 | # this is deprecated - as we're installing into the host OS, it makes more sense 2 | # for them to be able to bootstrap your system to be able to start the user docker 3 | kernel-headers-system-docker: 4 | image: ${REGISTRY_DOMAIN}/rancher/os-headers:${KERNEL_VERSION}${SUFFIX} 5 | labels: 6 | io.rancher.os.detach: "false" 7 | io.rancher.os.after: "network" 8 | io.rancher.os.scope: "system" 9 | volumes: 10 | - /usr/src:/usr/src 11 | - /lib/modules:/lib/modules 12 | - /usr/bin/ros:/usr/bin/ros 13 | -------------------------------------------------------------------------------- /k/kernel-headers.yml: -------------------------------------------------------------------------------- 1 | kernel-headers: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-headers:${KERNEL_VERSION}${SUFFIX} 3 | labels: 4 | io.rancher.os.detach: "false" 5 | io.rancher.os.after: "network" 6 | io.rancher.os.scope: "system" 7 | volumes: 8 | - /usr/src:/usr/src 9 | - /lib/modules:/lib/modules 10 | - /usr/bin/ros:/usr/bin/ros 11 | -------------------------------------------------------------------------------- /m/modem-manager.yml: -------------------------------------------------------------------------------- 1 | modem-manager: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-modemmanager:v1.6.4-1 3 | privileged: true 4 | labels: 5 | io.rancher.os.scope: system 6 | io.rancher.os.after: udev 7 | restart: always 8 | pid: host 9 | ipc: host 10 | net: host 11 | uts: host 12 | volumes_from: 13 | - command-volumes 14 | volumes: 15 | - /lib/modules:/lib/modules 16 | - /lib/firmware:/lib/firmware 17 | - /dev:/dev 18 | - /sys:/sys 19 | - /var/run:/var/run 20 | - /var/lib/rancher:/var/lib/rancher -------------------------------------------------------------------------------- /n/README.md: -------------------------------------------------------------------------------- 1 | # Nvidia-driver 2 | Support Nvidia-docker (Currently only support Ubuntu Console) 3 | 4 | ## Building 5 | 6 | ### Switch console 7 | ros console switch ubuntu 8 | 9 | ### Enable nvidia service 10 | ros service enable nvidia-driver 11 | 12 | ros service up nvidia-driver 13 | 14 | ### Manual execution of build.sh scripts (Ignoring CC version mismatch) 15 | /var/lib/rancher/nvidia/build.sh 16 | 17 | 18 | ## Verification 19 | docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi 20 | 21 | 22 | ``` 23 | +-----------------------------------------------------------------------------+ 24 | | NVIDIA-SMI 390.48 Driver Version: 390.48 | 25 | |-------------------------------+----------------------+----------------------+ 26 | | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | 27 | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | 28 | |===============================+======================+======================| 29 | | 0 Tesla K80 Off | 00000000:00:1E.0 Off | 0 | 30 | | N/A 35C P0 72W / 149W | 0MiB / 11441MiB | 98% Default | 31 | +-------------------------------+----------------------+----------------------+ 32 | 33 | +-----------------------------------------------------------------------------+ 34 | | Processes: GPU Memory | 35 | | GPU PID Type Process name Usage | 36 | |=============================================================================| 37 | | No running processes found | 38 | +-----------------------------------------------------------------------------+ 39 | ``` -------------------------------------------------------------------------------- /n/nvidia-driver.yml: -------------------------------------------------------------------------------- 1 | nvidia-driver: 2 | image: ${REGISTRY_DOMAIN}/wchao241/nvidia-driver:latest 3 | command: 4 | - sh 5 | - -c 6 | - "./build.sh" 7 | privileged: true 8 | labels: 9 | io.rancher.os.scope: "system" 10 | io.rancher.os.after: "docker" 11 | io.rancher.os.detach: "true" 12 | volumes_from: 13 | - all-volumes 14 | pid: host 15 | ipc: host 16 | net: host 17 | uts: host 18 | volumes: 19 | - /var/lib/rancher/nvidia:/tmp/usr/local -------------------------------------------------------------------------------- /o/open-iscsi.yml: -------------------------------------------------------------------------------- 1 | open-iscsi: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-iscsi:v2.0.873-2 3 | command: ./build.sh 4 | privileged: "true" 5 | labels: 6 | io.rancher.os.scope: "system" 7 | io.rancher.os.detach: "false" 8 | io.rancher.os.before: "docker" 9 | io.rancher.os.after: "console" 10 | environment: 11 | - HTTP_PROXY 12 | - HTTPS_PROXY 13 | - NO_PROXY 14 | volumes: 15 | - /usr/src:/usr/src 16 | volumes_from: 17 | - all-volumes 18 | pid: host 19 | ipc: host 20 | net: host 21 | uts: host 22 | -------------------------------------------------------------------------------- /o/open-vm-tools.yml: -------------------------------------------------------------------------------- 1 | open-vm-tools: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-openvmtools:10.3.10-2 3 | command: /usr/bin/vmtoolsd 4 | privileged: true 5 | labels: 6 | io.rancher.os.scope: system 7 | restart: always 8 | pid: host 9 | ipc: host 10 | net: host 11 | uts: host 12 | volumes_from: 13 | - command-volumes 14 | - system-volumes 15 | - user-volumes 16 | -------------------------------------------------------------------------------- /p/pingan-amc.yml: -------------------------------------------------------------------------------- 1 | pingan-amc: 2 | image: ${REGISTRY_DOMAIN}/cnrancher/os-pingan-amc:v0.0.6-1 3 | privileged: true 4 | labels: 5 | io.rancher.os.scope: system 6 | io.rancher.os.after: console 7 | restart: always 8 | pid: host 9 | ipc: host 10 | net: host 11 | uts: host 12 | volumes_from: 13 | - command-volumes 14 | -------------------------------------------------------------------------------- /q/qemu-guest-agent.yml: -------------------------------------------------------------------------------- 1 | qemu-guest-agent: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-qemuguestagent:v2.8.1-2 3 | command: /usr/local/bin/run 4 | privileged: true 5 | restart: always 6 | labels: 7 | io.rancher.os.scope: system 8 | io.rancher.os.after: console 9 | pid: host 10 | ipc: host 11 | net: host 12 | uts: host 13 | volumes_from: 14 | - command-volumes 15 | - system-volumes 16 | - user-volumes 17 | -------------------------------------------------------------------------------- /r/rancher-server-stable.yml: -------------------------------------------------------------------------------- 1 | rancher-server-stable: 2 | image: ${REGISTRY_DOMAIN}/rancher/server:stable 3 | privileged: false 4 | labels: 5 | io.rancher.os.scope: user 6 | io.rancher.os.after: docker 7 | restart: unless-stopped 8 | ports: 9 | - 8080:8080 10 | -------------------------------------------------------------------------------- /r/rancher-server.yml: -------------------------------------------------------------------------------- 1 | rancher-server: 2 | image: ${REGISTRY_DOMAIN}/rancher/server:latest 3 | privileged: false 4 | labels: 5 | io.rancher.os.scope: user 6 | io.rancher.os.after: docker 7 | restart: unless-stopped 8 | ports: 9 | - 8080:8080 10 | -------------------------------------------------------------------------------- /scripts/build-images: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | function docker_tag_exists() { 5 | EXISTS=$(curl -s -i https://registry.hub.docker.com/v2/repositories/$1/tags/$2/ | grep last_updated) 6 | return $? 7 | } 8 | 9 | function build() { 10 | build_dir="${i}" 11 | name="os-$(echo ${build_dir} | cut -f2 -d-)" 12 | 13 | version="${VERSION}" 14 | if [ "${name}" == "os-docker" ]; then 15 | IFS='-' read -ra dirname <<< "$i" 16 | IFS='_' read -ra ver <<< "${dirname[2]}" 17 | version=${ver[0]} 18 | 19 | #TODO: eventually this will go away, and we can use ARCH 20 | LOCALARCH="${ver[1]}" 21 | if [ "${LOCALARCH}" != "" ]; then 22 | SUFFIX="_${LOCALARCH}" 23 | else 24 | LOCALARCH="amd64" 25 | SUFFIX="" 26 | fi 27 | else 28 | LOCALARCH="$ARCH" 29 | if [ "${LOCALARCH}" != "amd64" ]; then 30 | SUFFIX="_${LOCALARCH}" 31 | else 32 | SUFFIX="" 33 | fi 34 | fi 35 | 36 | tag="${OS_REPO}/${name}:${version}${SUFFIX}" 37 | 38 | if [[ "$LOCALARCH" != "$ARCH" ]]; then 39 | echo "${tag} ($LOCALARCH) is not for this arch $ARCH, skipping" 40 | return 41 | fi 42 | 43 | if docker_tag_exists "${OS_REPO}/${name}" "${version}${SUFFIX}"; then 44 | echo "${tag} EXISTS on Docker Hub, skipping" 45 | return 46 | fi 47 | 48 | if [ $(docker images -q ${tag}) ]; then 49 | echo "== ${tag} EXISTS locally, needs pushing" 50 | if [ "${name}" == "os-docker" ]; then 51 | docker run --rm -it ${tag} /engine/docker version | grep Version 52 | docker run --rm -it ${tag} /engine/docker version | grep Arch 53 | fi 54 | else 55 | echo Building ${tag} from ${build_dir} 56 | if [ -e ${build_dir}/prebuild.sh ]; then 57 | ${build_dir}/prebuild.sh "${version}" "${LOCALARCH}" 58 | fi 59 | 60 | if dapper -d --build -f ${build_dir}/Dockerfile -- -t ${OS_REPO}/${name} ${build_dir}; then 61 | docker tag ${OS_REPO}/${name} ${tag} 62 | if [ "${name}" == "os-docker" ]; then 63 | docker run --rm -it ${tag} /engine/docker version | grep Version 64 | docker run --rm -it ${tag} /engine/docker version | grep Arch 65 | fi 66 | elif [ "$?" != "42" ]; then 67 | exit 1 68 | else 69 | echo "Skipping ${tag}" 70 | return 71 | fi 72 | fi 73 | echo ${tag} >> dist/images 74 | } 75 | 76 | export ARCH=${ARCH:-"amd64"} 77 | BASE=images 78 | 79 | source $(dirname $0)/version 80 | cd $(dirname $0)/.. 81 | 82 | mkdir -p dist 83 | echo > dist/images 84 | 85 | image_dirname=${IMAGE_BUILD_NAME:-"[1-9]*"} 86 | for i in $BASE/$image_dirname; do 87 | build ${i} 88 | done 89 | -------------------------------------------------------------------------------- /scripts/ci: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd $(dirname $0)/.. 5 | 6 | ./scripts/build-images 7 | 8 | echo 9 | echo "Images ready to push:" 10 | cat dist/images 11 | echo 12 | 13 | cat dist/images | sed 's/^/docker push /' > dist/publish.sh 14 | chmod 755 dist/publish.sh 15 | -------------------------------------------------------------------------------- /scripts/clean: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd $(dirname $0)/.. 4 | 5 | rm -rf build dist 6 | docker rmi $(docker images --format "{{.Repository}}:{{.Tag}}") 7 | docker system prune -f 8 | -------------------------------------------------------------------------------- /scripts/entry: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p bin dist build/initrd 4 | if [ -e ./scripts/$1 ]; then 5 | ./scripts/"$@" 6 | else 7 | "$@" 8 | fi 9 | 10 | EXIT=$? 11 | 12 | chown -R $DAPPER_UID:$DAPPER_GID . 13 | 14 | exit $EXIT 15 | -------------------------------------------------------------------------------- /scripts/release: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd $(dirname $0) 4 | 5 | ./ci 6 | -------------------------------------------------------------------------------- /scripts/version: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -n "$(git status --porcelain --untracked-files=no)" ]; then 4 | DIRTY="-dirty" 5 | fi 6 | 7 | COMMIT=$(git rev-parse --short HEAD) 8 | GIT_TAG=$(git tag -l --contains HEAD | head -n 1) 9 | 10 | if [ -z "$VERSION" ]; then 11 | if [[ -z "$DIRTY" && -n "$GIT_TAG" ]]; then 12 | VERSION=$GIT_TAG 13 | else 14 | VERSION="${COMMIT}${DIRTY}" 15 | fi 16 | fi 17 | 18 | export VERSION COMMIT 19 | 20 | # Suffix 21 | export SUFFIX="" 22 | if [ -n "${ARCH}" ] && [ "${ARCH}" != "amd64" ]; then 23 | SUFFIX="_${ARCH}" 24 | fi 25 | -------------------------------------------------------------------------------- /u/ubuntu.yml: -------------------------------------------------------------------------------- 1 | console: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-ubuntuconsole:v1.5.5${SUFFIX} 3 | command: ros console-init 4 | privileged: true 5 | labels: 6 | io.rancher.os.scope: system 7 | io.rancher.os.after: network 8 | io.docker.compose.rebuild: "false" 9 | io.rancher.os.console: ubuntu 10 | volumes_from: 11 | - all-volumes 12 | volumes: 13 | - /media:/media:shared 14 | - /mnt:/mnt:shared 15 | restart: always 16 | pid: host 17 | ipc: host 18 | net: host 19 | uts: host 20 | -------------------------------------------------------------------------------- /v/virtualbox-tools.yml: -------------------------------------------------------------------------------- 1 | virtualbox-tools: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-vboxtools:v5.2.26-5 3 | command: /usr/local/bin/run 4 | privileged: true 5 | restart: always 6 | labels: 7 | io.rancher.os.scope: system 8 | io.rancher.os.after: console 9 | pid: host 10 | ipc: host 11 | net: host 12 | uts: host 13 | volumes_from: 14 | - command-volumes 15 | - system-volumes 16 | -------------------------------------------------------------------------------- /v/volume-cifs.yml: -------------------------------------------------------------------------------- 1 | volume-cifs: 2 | command: cifs --verbose --basedir=/mnt/volumes/netshare ${VOLUME_CIFS_OPTIONS} 3 | image: ${REGISTRY_DOMAIN}/rancher/os-volumenetshare 4 | pid: host 5 | ipc: host 6 | net: host 7 | uts: host 8 | privileged: true 9 | restart: always 10 | volumes: 11 | - /run/docker/plugins:/run/docker/plugins:rw 12 | - /mnt/volumes/netshare/cifs:/mnt/volumes/netshare/cifs:shared 13 | labels: 14 | io.rancher.os.scope: system 15 | io.rancher.os.after: docker 16 | io.rancher.os.detach: "true" 17 | environment: 18 | - AWS_* 19 | - VOLUME_CIFS_OPTIONS 20 | -------------------------------------------------------------------------------- /v/volume-efs.yml: -------------------------------------------------------------------------------- 1 | volume-efs: 2 | command: efs --verbose --basedir=/mnt ${VOLUME_EFS_OPTIONS} 3 | image: ${REGISTRY_DOMAIN}/rancher/os-volumenetshare 4 | pid: host 5 | ipc: host 6 | net: host 7 | uts: host 8 | privileged: true 9 | restart: always 10 | volumes: 11 | - /run/docker/plugins:/run/docker/plugins:rw 12 | - /mnt/volumes/netshare/efs:/mnt:shared 13 | labels: 14 | io.rancher.os.scope: system 15 | io.rancher.os.after: docker 16 | io.rancher.os.detach: "true" 17 | environment: 18 | - AWS_* 19 | - VOLUME_EFS_OPTIONS 20 | -------------------------------------------------------------------------------- /v/volume-nfs.yml: -------------------------------------------------------------------------------- 1 | volume-nfs: 2 | command: nfs --verbose --basedir=/mnt ${VOLUME_NFS_OPTIONS} 3 | image: ${REGISTRY_DOMAIN}/rancher/os-volumenetshare 4 | pid: host 5 | ipc: host 6 | net: host 7 | uts: host 8 | privileged: true 9 | restart: always 10 | volumes: 11 | - /run/docker/plugins:/run/docker/plugins:rw 12 | - /mnt/volumes/netshare/nfs:/mnt:shared 13 | labels: 14 | io.rancher.os.scope: system 15 | io.rancher.os.after: docker 16 | io.rancher.os.detach: "true" 17 | environment: 18 | - AWS_* 19 | - VOLUME_NFS_OPTIONS 20 | -------------------------------------------------------------------------------- /w/waagent.yml: -------------------------------------------------------------------------------- 1 | waagent: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-waagent:v2.2.34-1 3 | command: ["-daemon", "-verbose"] 4 | privileged: true 5 | labels: 6 | io.rancher.os.after: "console" 7 | io.rancher.os.scope: system 8 | restart: always 9 | pid: host 10 | ipc: host 11 | net: host 12 | uts: host 13 | volumes_from: 14 | - command-volumes 15 | - system-volumes 16 | - user-volumes 17 | - media-volumes 18 | volumes: 19 | - /dev:/dev 20 | - /sys:/sys -------------------------------------------------------------------------------- /z/zfs.yml: -------------------------------------------------------------------------------- 1 | zfs: 2 | image: ${REGISTRY_DOMAIN}/rancher/os-zfs:v0.7.13-1${SUFFIX} 3 | command: ./build.sh 4 | privileged: "true" 5 | labels: 6 | io.rancher.os.scope: "system" 7 | io.rancher.os.detach: "false" 8 | io.rancher.os.before: "docker" 9 | io.rancher.os.after: "console" 10 | environment: 11 | - HTTP_PROXY 12 | - HTTPS_PROXY 13 | - NO_PROXY 14 | volumes: 15 | - /usr/src:/usr/src 16 | # - /lib/modules:/lib/modules 17 | # - /usr/bin/ros:/usr/bin/ros 18 | volumes_from: 19 | - all-volumes 20 | pid: host 21 | ipc: host 22 | net: host 23 | uts: host 24 | --------------------------------------------------------------------------------