1
0
mirror of https://github.com/rancher/os.git synced 2025-06-21 04:31:55 +00:00
os/Dockerfile.dapper

169 lines
5.8 KiB
Docker
Raw Normal View History

2016-05-06 17:12:09 +00:00
FROM ubuntu:16.04
2018-01-05 05:42:44 +00:00
# FROM arm64=aarch64/ubuntu:16.04
# 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 \
gettext \
2016-06-30 05:09:37 +00:00
git \
isolinux \
less \
libblkid-dev \
libmount-dev \
libselinux1-dev \
locales \
module-init-tools \
mtools \
2016-06-30 05:09:37 +00:00
openssh-client \
pkg-config \
qemu \
qemu-kvm \
rsync \
sudo \
syslinux-common \
vim \
wget \
xorriso \
xz-utils \
telnet
2016-06-30 05:09:37 +00:00
########## Dapper Configuration #####################
ENV DAPPER_ENV VERSION DEV_BUILD RUNTEST DEBUG APTPROXY ENGINE_REGISTRY_MIRROR INTEGRATION_TESTS
ENV DAPPER_DOCKER_SOCKET true
ENV DAPPER_SOURCE /go/src/github.com/rancher/os
ENV DAPPER_OUTPUT ./bin ./dist ./build/initrd ./build/kernel
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-06-02 04:28:32 +00:00
ARG DOCKER_VERSION=1.11.2
ARG DOCKER_PATCH_VERSION=v${DOCKER_VERSION}-ros1
ARG DOCKER_BUILD_VERSION=1.10.3
ARG DOCKER_BUILD_PATCH_VERSION=v${DOCKER_BUILD_VERSION}-ros1
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
2018-02-09 12:38:09 +00:00
ARG KERNEL_VERSION_amd64=4.15.2-rancher
ARG KERNEL_URL_amd64=https://github.com/rancher/os-kernel/releases/download/v${KERNEL_VERSION_amd64}/linux-${KERNEL_VERSION_amd64}-x86.tar.gz
2016-05-06 17:12:09 +00:00
2016-06-01 04:38:10 +00:00
ARG DOCKER_URL_amd64=https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_VERSION}.tgz
ARG DOCKER_URL_arm64=https://github.com/rancher/docker/releases/download/${DOCKER_PATCH_VERSION}/docker-${DOCKER_VERSION}_arm64.tgz
2016-05-06 17:12:09 +00:00
2016-06-02 04:28:32 +00:00
ARG BUILD_DOCKER_URL_amd64=https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_BUILD_VERSION}
ARG BUILD_DOCKER_URL_arm64=https://github.com/rancher/docker/releases/download/${DOCKER_BUILD_PATCH_VERSION}/docker-${DOCKER_BUILD_VERSION}_arm64
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
2016-07-01 20:32:43 +00:00
ARG DFS_IMAGE=${OS_REPO}/docker:v${DOCKER_VERSION}-2
2016-05-06 17:12:09 +00:00
2018-03-08 05:56:12 +00:00
ARG OS_BASE_URL_amd64=https://github.com/rancher/os-base/releases/download/v2018.02-1/os-base_amd64.tar.xz
ARG OS_BASE_URL_arm64=https://github.com/rancher/os-base/releases/download/v2018.02-1/os-base_arm64.tar.xz
2018-02-27 10:01:30 +00:00
2018-03-05 05:32:00 +00:00
ARG SYSTEM_DOCKER_VERSION=17.06-ros3
2018-02-27 10:01:30 +00:00
ARG SYSTEM_DOCKER_URL_amd64=https://github.com/niusmallnan/os-system-docker/releases/download/${SYSTEM_DOCKER_VERSION}/docker-amd64-${SYSTEM_DOCKER_VERSION}.tgz
ARG SYSTEM_DOCKER_URL_arm64=https://github.com/niusmallnan/os-system-docker/releases/download/${SYSTEM_DOCKER_VERSION}/docker-arm64-${SYSTEM_DOCKER_VERSION}.tgz
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} \
HOST_ARCH=${HOST_ARCH}
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} \
DFS_IMAGE=${DFS_IMAGE} \
DISTRIB_ID=${DISTRIB_ID} \
DOCKER_PATCH_VERSION=${DOCKER_PATCH_VERSION} \
DOCKER_URL=DOCKER_URL_${ARCH} \
DOCKER_URL_amd64=${DOCKER_URL_amd64} \
DOCKER_URL_arm64=${DOCKER_URL_arm64} \
DOCKER_VERSION=${DOCKER_VERSION} \
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} \
KERNEL_VERSION=${KERNEL_VERSION_amd64} \
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_SHA1=OS_BASE_SHA1_${ARCH} \
OS_BASE_URL=OS_BASE_URL_${ARCH} \
OS_BASE_URL_amd64=${OS_BASE_URL_amd64} \
OS_BASE_URL_arm64=${OS_BASE_URL_arm64} \
OS_RELEASES_YML=${OS_RELEASES_YML} \
OS_REPO=${OS_REPO} \
OS_SERVICES_REPO=${OS_SERVICES_REPO} \
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} \
SYSTEM_DOCKER_URL_arm64=${SYSTEM_DOCKER_URL_arm64}
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-05-06 17:12:09 +00:00
# Download kernel
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
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
RUN ln -sf go-6 /usr/bin/go && \
2016-05-23 06:11:26 +00:00
curl -sfL https://storage.googleapis.com/golang/go${GO_VERSION}.src.tar.gz | tar -xzf - -C /usr/local && \
2016-05-06 17:12:09 +00:00
cd /usr/local/go/src && \
2016-05-23 06:11:26 +00:00
GOROOT_BOOTSTRAP=/usr GOARCH=${HOST_ARCH} GOHOSTARCH=${HOST_ARCH} ./make.bash && \
rm /usr/bin/go
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 Trash
RUN go get github.com/rancher/trash
2016-11-29 01:55:25 +00:00
# Install golint
RUN go get github.com/golang/lint/golint
2016-07-20 17:42:16 +00:00
RUN go get gopkg.in/check.v1
2016-06-01 04:11:03 +00:00
# Install dapper
2016-06-02 04:28:32 +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
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"]