2019-05-17 03:11:26 +00:00
|
|
|
FROM ubuntu:bionic
|
|
|
|
# FROM arm64=arm64v8/ubuntu:bionic
|
2016-03-01 01:01:33 +00:00
|
|
|
|
2017-06-15 05:55:30 +00:00
|
|
|
# get the apt-cacher proxy set
|
|
|
|
ARG APTPROXY=
|
|
|
|
|
|
|
|
RUN echo "Acquire::http { Proxy \"$APTPROXY\"; };" >> /etc/apt/apt.conf.d/01proxy \
|
|
|
|
&& cat /etc/apt/apt.conf.d/01proxy \
|
|
|
|
&& apt-get update \
|
|
|
|
&& apt-get install -y --no-install-recommends \
|
2016-06-30 05:09:37 +00:00
|
|
|
build-essential \
|
|
|
|
ca-certificates \
|
|
|
|
cpio \
|
|
|
|
curl \
|
|
|
|
dosfstools \
|
|
|
|
gccgo \
|
|
|
|
genisoimage \
|
2016-12-20 12:49:34 +00:00
|
|
|
gettext \
|
2016-06-30 05:09:37 +00:00
|
|
|
git \
|
|
|
|
isolinux \
|
|
|
|
less \
|
|
|
|
libblkid-dev \
|
|
|
|
libmount-dev \
|
|
|
|
libselinux1-dev \
|
|
|
|
locales \
|
|
|
|
module-init-tools \
|
2017-06-23 11:51:38 +00:00
|
|
|
mtools \
|
2016-06-30 05:09:37 +00:00
|
|
|
openssh-client \
|
|
|
|
pkg-config \
|
|
|
|
qemu \
|
|
|
|
qemu-kvm \
|
|
|
|
rsync \
|
|
|
|
sudo \
|
|
|
|
syslinux-common \
|
|
|
|
vim \
|
|
|
|
wget \
|
2017-06-23 02:17:25 +00:00
|
|
|
xorriso \
|
2018-02-05 09:43:39 +00:00
|
|
|
xz-utils \
|
|
|
|
telnet
|
2016-06-30 05:09:37 +00:00
|
|
|
|
2016-11-10 01:41:52 +00:00
|
|
|
########## Dapper Configuration #####################
|
|
|
|
|
2019-03-05 09:00:41 +00:00
|
|
|
ENV DAPPER_ENV VERSION DEV_BUILD RUNTEST DEBUG APTPROXY ENGINE_REGISTRY_MIRROR KERNEL_CHECK APPEND_SYSTEM_IMAGES APPEND_USER_IMAGES
|
2016-11-10 01:41:52 +00:00
|
|
|
ENV DAPPER_DOCKER_SOCKET true
|
|
|
|
ENV DAPPER_SOURCE /go/src/github.com/rancher/os
|
2016-12-04 11:27:06 +00:00
|
|
|
ENV DAPPER_OUTPUT ./bin ./dist ./build/initrd ./build/kernel
|
2016-11-10 01:41:52 +00:00
|
|
|
ENV DAPPER_RUN_ARGS --privileged
|
|
|
|
ENV TRASH_CACHE ${DAPPER_SOURCE}/.trash-cache
|
|
|
|
ENV SHELL /bin/bash
|
|
|
|
WORKDIR ${DAPPER_SOURCE}
|
|
|
|
|
2016-05-06 17:12:09 +00:00
|
|
|
########## General Configuration #####################
|
|
|
|
ARG DAPPER_HOST_ARCH=amd64
|
|
|
|
ARG HOST_ARCH=${DAPPER_HOST_ARCH}
|
2016-05-08 17:35:48 +00:00
|
|
|
ARG ARCH=${HOST_ARCH}
|
2016-05-06 17:12:09 +00:00
|
|
|
|
|
|
|
ARG OS_REPO=rancher
|
|
|
|
ARG HOSTNAME_DEFAULT=rancher
|
|
|
|
ARG DISTRIB_ID=RancherOS
|
|
|
|
|
2016-07-07 17:04:10 +00:00
|
|
|
ARG SELINUX_POLICY_URL=https://github.com/rancher/refpolicy/releases/download/v0.0.3/policy.29
|
2016-05-06 17:12:09 +00:00
|
|
|
|
2020-04-22 08:35:18 +00:00
|
|
|
ARG KERNEL_VERSION=4.14.176-rancher
|
2018-12-02 12:50:02 +00:00
|
|
|
ARG KERNEL_URL_amd64=https://github.com/rancher/os-kernel/releases/download/v${KERNEL_VERSION}/linux-${KERNEL_VERSION}-x86.tar.gz
|
|
|
|
ARG KERNEL_URL_arm64=https://github.com/rancher/os-kernel/releases/download/v${KERNEL_VERSION}/linux-${KERNEL_VERSION}-arm64.tar.gz
|
2016-05-06 17:12:09 +00:00
|
|
|
|
2018-10-11 07:59:23 +00:00
|
|
|
ARG BUILD_DOCKER_URL_amd64=https://get.docker.com/builds/Linux/x86_64/docker-1.10.3
|
|
|
|
ARG BUILD_DOCKER_URL_arm64=https://github.com/rancher/docker/releases/download/v1.10.3-ros1/docker-1.10.3_arm64
|
2016-06-02 04:28:32 +00:00
|
|
|
|
2016-06-27 12:47:28 +00:00
|
|
|
ARG OS_RELEASES_YML=https://releases.rancher.com/os
|
2016-05-06 17:12:09 +00:00
|
|
|
|
|
|
|
ARG OS_SERVICES_REPO=https://raw.githubusercontent.com/${OS_REPO}/os-services
|
|
|
|
ARG IMAGE_NAME=${OS_REPO}/os
|
|
|
|
|
2018-12-18 08:47:42 +00:00
|
|
|
ARG OS_CONSOLE=default
|
2019-01-21 01:56:40 +00:00
|
|
|
ARG OS_AUTOFORMAT=false
|
2018-12-18 08:47:42 +00:00
|
|
|
|
2019-03-30 01:11:49 +00:00
|
|
|
ARG OS_BASE_URL_amd64=https://github.com/rancher/os-base/releases/download/v2018.02.11-1/os-base_amd64.tar.xz
|
|
|
|
ARG OS_BASE_URL_arm64=https://github.com/rancher/os-base/releases/download/v2018.02.11-1/os-base_arm64.tar.xz
|
2018-02-27 10:01:30 +00:00
|
|
|
|
2019-03-30 01:12:26 +00:00
|
|
|
ARG OS_INITRD_BASE_URL_amd64=https://github.com/rancher/os-initrd-base/releases/download/v2018.02.11-1/os-initrd-base-amd64.tar.gz
|
|
|
|
ARG OS_INITRD_BASE_URL_arm64=https://github.com/rancher/os-initrd-base/releases/download/v2018.02.11-1/os-initrd-base-arm64.tar.gz
|
2018-11-05 05:00:40 +00:00
|
|
|
|
2019-02-11 09:14:06 +00:00
|
|
|
ARG SYSTEM_DOCKER_VERSION=17.06-ros6
|
2019-02-11 16:47:45 +00:00
|
|
|
ARG SYSTEM_DOCKER_URL_amd64=https://github.com/rancher/os-system-docker/releases/download/${SYSTEM_DOCKER_VERSION}/docker-amd64-${SYSTEM_DOCKER_VERSION}.tgz
|
|
|
|
ARG SYSTEM_DOCKER_URL_arm64=https://github.com/rancher/os-system-docker/releases/download/${SYSTEM_DOCKER_VERSION}/docker-arm64-${SYSTEM_DOCKER_VERSION}.tgz
|
2018-05-12 09:18:30 +00:00
|
|
|
|
2020-03-11 20:17:05 +00:00
|
|
|
ARG USER_DOCKER_VERSION=19.03.8
|
2019-08-14 07:43:17 +00:00
|
|
|
ARG USER_DOCKER_ENGINE_VERSION=docker-${USER_DOCKER_VERSION}
|
2018-12-04 06:48:09 +00:00
|
|
|
|
2018-12-14 07:39:41 +00:00
|
|
|
ARG AZURE_SERVICE=false
|
2019-01-22 02:00:55 +00:00
|
|
|
ARG PROXMOXVE_SERVICE=false
|
2016-05-06 17:12:09 +00:00
|
|
|
######################################################
|
|
|
|
|
2016-06-02 04:28:32 +00:00
|
|
|
# Set up environment and export all ARGS as ENV
|
2016-06-30 05:09:37 +00:00
|
|
|
ENV ARCH=${ARCH} \
|
2019-05-17 03:11:26 +00:00
|
|
|
HOST_ARCH=${HOST_ARCH} \
|
|
|
|
XZ_DEFAULTS="-T0"
|
2016-06-30 05:09:37 +00:00
|
|
|
|
|
|
|
ENV BUILD_DOCKER_URL=BUILD_DOCKER_URL_${ARCH} \
|
|
|
|
BUILD_DOCKER_URL_amd64=${BUILD_DOCKER_URL_amd64} \
|
|
|
|
BUILD_DOCKER_URL_arm64=${BUILD_DOCKER_URL_arm64} \
|
|
|
|
DAPPER_HOST_ARCH=${DAPPER_HOST_ARCH} \
|
|
|
|
DISTRIB_ID=${DISTRIB_ID} \
|
|
|
|
DOWNLOADS=/usr/src/downloads \
|
|
|
|
GOPATH=/go \
|
2017-12-29 05:30:31 +00:00
|
|
|
GO_VERSION=1.8.5 \
|
2016-06-30 05:09:37 +00:00
|
|
|
GOARCH=$ARCH \
|
|
|
|
HOSTNAME_DEFAULT=${HOSTNAME_DEFAULT} \
|
|
|
|
IMAGE_NAME=${IMAGE_NAME} \
|
2018-12-02 12:50:02 +00:00
|
|
|
KERNEL_VERSION=${KERNEL_VERSION} \
|
2016-06-30 05:09:37 +00:00
|
|
|
KERNEL_URL=KERNEL_URL_${ARCH} \
|
|
|
|
KERNEL_URL_amd64=${KERNEL_URL_amd64} \
|
|
|
|
KERNEL_URL_arm64=${KERNEL_URL_arm64} \
|
|
|
|
OS_BASE_URL=OS_BASE_URL_${ARCH} \
|
|
|
|
OS_BASE_URL_amd64=${OS_BASE_URL_amd64} \
|
|
|
|
OS_BASE_URL_arm64=${OS_BASE_URL_arm64} \
|
2018-11-05 05:00:40 +00:00
|
|
|
OS_INITRD_BASE_URL=OS_INITRD_BASE_URL_${ARCH} \
|
|
|
|
OS_INITRD_BASE_URL_amd64=${OS_INITRD_BASE_URL_amd64} \
|
|
|
|
OS_INITRD_BASE_URL_arm64=${OS_INITRD_BASE_URL_arm64} \
|
2016-06-30 05:09:37 +00:00
|
|
|
OS_RELEASES_YML=${OS_RELEASES_YML} \
|
|
|
|
OS_REPO=${OS_REPO} \
|
|
|
|
OS_SERVICES_REPO=${OS_SERVICES_REPO} \
|
2018-12-18 08:47:42 +00:00
|
|
|
OS_CONSOLE=${OS_CONSOLE} \
|
2019-01-21 01:56:40 +00:00
|
|
|
OS_AUTOFORMAT=${OS_AUTOFORMAT} \
|
2016-06-30 05:09:37 +00:00
|
|
|
REPO_VERSION=master \
|
2018-02-27 10:01:30 +00:00
|
|
|
SELINUX_POLICY_URL=${SELINUX_POLICY_URL} \
|
|
|
|
SYSTEM_DOCKER_URL=SYSTEM_DOCKER_URL_${ARCH} \
|
|
|
|
SYSTEM_DOCKER_URL_amd64=${SYSTEM_DOCKER_URL_amd64} \
|
2018-05-10 04:33:16 +00:00
|
|
|
SYSTEM_DOCKER_URL_arm64=${SYSTEM_DOCKER_URL_arm64} \
|
2018-12-04 06:48:09 +00:00
|
|
|
USER_DOCKER_VERSION=${USER_DOCKER_VERSION} \
|
|
|
|
USER_DOCKER_ENGINE_VERSION=${USER_DOCKER_ENGINE_VERSION} \
|
2019-01-22 02:00:55 +00:00
|
|
|
AZURE_SERVICE=${AZURE_SERVICE} \
|
|
|
|
PROXMOXVE_SERVICE=${PROXMOXVE_SERVICE}
|
2016-07-20 01:59:55 +00:00
|
|
|
ENV PATH=${GOPATH}/bin:/usr/local/go/bin:$PATH
|
2016-02-28 19:17:03 +00:00
|
|
|
|
2016-05-06 17:12:09 +00:00
|
|
|
RUN mkdir -p ${DOWNLOADS}
|
2016-03-01 01:01:33 +00:00
|
|
|
|
2016-05-06 17:12:09 +00:00
|
|
|
# Download kernel
|
|
|
|
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
2016-12-04 11:27:06 +00:00
|
|
|
RUN echo "... Downloading ${!KERNEL_URL}"; \
|
|
|
|
if [ -n "${!KERNEL_URL}" ]; then \
|
2016-05-06 17:12:09 +00:00
|
|
|
curl -fL ${!KERNEL_URL} > ${DOWNLOADS}/kernel.tar.gz \
|
|
|
|
;fi
|
|
|
|
|
|
|
|
# Download SELinux Policy
|
|
|
|
RUN curl -pfL ${SELINUX_POLICY_URL} > ${DOWNLOADS}/$(basename ${SELINUX_POLICY_URL})
|
|
|
|
|
|
|
|
# Install Go
|
2018-03-08 06:14:48 +00:00
|
|
|
RUN wget -O - https://storage.googleapis.com/golang/go${GO_VERSION}.linux-${GOARCH}.tar.gz | tar -xzf - -C /usr/local && \
|
2018-10-23 10:03:52 +00:00
|
|
|
go get github.com/rancher/trash
|
|
|
|
|
|
|
|
RUN mkdir -p ${GOPATH}/src/golang.org/x && cd ${GOPATH}/src/golang.org/x/ && git clone https://github.com/golang/tools && \
|
|
|
|
cd tools && git checkout 6adeb8aab2ded9eb693b831d5fd090c10a6ebdfa -b temp && go get golang.org/x/lint/golint
|
2016-05-06 17:12:09 +00:00
|
|
|
|
2016-06-01 04:38:10 +00:00
|
|
|
# Install Host Docker
|
2016-06-02 04:28:32 +00:00
|
|
|
RUN curl -fL ${!BUILD_DOCKER_URL} > /usr/bin/docker && \
|
2016-05-06 17:12:09 +00:00
|
|
|
chmod +x /usr/bin/docker
|
|
|
|
|
2016-06-01 04:11:03 +00:00
|
|
|
# Install dapper
|
2019-02-10 07:06:06 +00:00
|
|
|
RUN curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m | sed 's/arm.*/arm/'` > /usr/bin/dapper && \
|
2016-06-01 04:11:03 +00:00
|
|
|
chmod +x /usr/bin/dapper
|
2016-05-06 17:12:09 +00:00
|
|
|
|
2016-06-17 14:59:11 +00:00
|
|
|
RUN cd ${DOWNLOADS} && \
|
|
|
|
curl -pfL ${!OS_BASE_URL} | tar xvJf -
|
2016-05-06 22:42:56 +00:00
|
|
|
|
2016-05-06 17:12:09 +00:00
|
|
|
ENTRYPOINT ["./scripts/entry"]
|
|
|
|
CMD ["ci"]
|