mirror of
https://github.com/rancher/os.git
synced 2025-06-24 14:01:34 +00:00
Build script
This commit is contained in:
parent
03db5d1058
commit
c9c095f202
@ -47,8 +47,10 @@ ARG OS_REPO=rancher
|
||||
ARG HOSTNAME_DEFAULT=rancher
|
||||
ARG DISTRIB_ID=RancherOS
|
||||
|
||||
ARG DOCKER_VERSION=1.11.1
|
||||
ARG DOCKER_PATCH_VERSION=v${DOCKER_VERSION}-ros2
|
||||
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
|
||||
ARG SELINUX_POLICY_URL=https://github.com/rancher/refpolicy/releases/download/v0.0.2/policy.29
|
||||
|
||||
ARG KERNEL_URL_amd64=https://github.com/rancher/os-kernel/releases/download/Ubuntu-4.4.0-23.41-rancher/linux-4.4.10-rancher-x86.tar.gz
|
||||
@ -58,6 +60,10 @@ ARG DOCKER_URL_amd64=https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_
|
||||
ARG DOCKER_URL_arm=https://github.com/rancher/docker/releases/download/${DOCKER_PATCH_VERSION}/docker-${DOCKER_VERSION}_arm.tgz
|
||||
ARG DOCKER_URL_arm64=https://github.com/rancher/docker/releases/download/${DOCKER_PATCH_VERSION}/docker-${DOCKER_VERSION}_arm64.tgz
|
||||
|
||||
ARG BUILD_DOCKER_URL_amd64=https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_BUILD_VERSION}
|
||||
ARG BUILD_DOCKER_URL_arm=https://github.com/rancher/docker/releases/download/${DOCKER_BUILD_PATCH_VERSION}/docker-${DOCKER_BUILD_VERSION}_arm
|
||||
ARG BUILD_DOCKER_URL_arm64=https://github.com/rancher/docker/releases/download/${DOCKER_BUILD_PATCH_VERSION}/docker-${DOCKER_BUILD_VERSION}_arm64
|
||||
|
||||
ARG TOOLCHAIN_arm64=aarch64-linux-gnu
|
||||
ARG TOOLCHAIN_arm=arm-linux-gnueabihf
|
||||
|
||||
@ -68,25 +74,51 @@ ARG OS_SERVICES_REPO=https://raw.githubusercontent.com/${OS_REPO}/os-services
|
||||
ARG IMAGE_NAME=${OS_REPO}/os
|
||||
ARG DFS_IMAGE=${OS_REPO}/docker:v${DOCKER_VERSION}
|
||||
|
||||
ARG OS_BASE_URL_amd64=https://github.com/rancher/os-base/releases/download/v2016.02/os-base_amd64.tar.xz
|
||||
ARG OS_BASE_URL_arm64=https://github.com/rancher/os-base/releases/download/v2016.02/os-base_arm64.tar.xz
|
||||
ARG OS_BASE_URL_arm=https://github.com/rancher/os-base/releases/download/v2016.02/os-base_arm.tar.xz
|
||||
ARG OS_BASE_URL_amd64=https://github.com/rancher/os-base/releases/download/v2016.05-1/os-base_amd64.tar.xz
|
||||
ARG OS_BASE_URL_arm64=https://github.com/rancher/os-base/releases/download/v2016.05-1/os-base_arm64.tar.xz
|
||||
ARG OS_BASE_URL_arm=https://github.com/rancher/os-base/releases/download/v2016.05-1/os-base_arm.tar.xz
|
||||
|
||||
######################################################
|
||||
|
||||
# Set up environment
|
||||
ENV GOARCH $ARCH
|
||||
# Set up environment and export all ARGS as ENV
|
||||
ENV ARCH ${ARCH}
|
||||
ENV BUILD_DOCKER_URL BUILD_DOCKER_URL_${ARCH}
|
||||
ENV BUILD_DOCKER_URL_amd64 ${BUILD_DOCKER_URL_amd64}
|
||||
ENV BUILD_DOCKER_URL_arm ${BUILD_DOCKER_URL_arm}
|
||||
ENV BUILD_DOCKER_URL_arm64 ${BUILD_DOCKER_URL_arm64}
|
||||
ENV DAPPER_HOST_ARCH ${DAPPER_HOST_ARCH}
|
||||
ENV DFS_IMAGE ${DFS_IMAGE}
|
||||
ENV DISTRIB_ID ${DISTRIB_ID}
|
||||
ENV DOCKER_PATCH_VERSION ${DOCKER_PATCH_VERSION}
|
||||
ENV DOCKER_URL DOCKER_URL_${ARCH}
|
||||
ENV KERNEL_URL KERNEL_URL_${ARCH}
|
||||
ENV OS_BASE_URL OS_BASE_URL_${ARCH}
|
||||
ENV OS_BASE_SHA1 OS_BASE_SHA1_${ARCH}
|
||||
ENV VBOX_MODULES_URL VBOX_MODULES_URL_${ARCH}
|
||||
ENV REPO_VERSION master
|
||||
|
||||
# Export all ARGS as ENV
|
||||
ENV ARCH=${ARCH} DAPPER_HOST_ARCH=${DAPPER_HOST_ARCH} HOST_ARCH=${HOST_ARCH} OS_REPO=${OS_REPO} HOSTNAME_DEFAULT=${HOSTNAME_DEFAULT} DISTRIB_ID=${DISTRIB_ID} DOCKER_VERSION=${DOCKER_VERSION} DOCKER_PATCH_VERSION=${DOCKER_PATCH_VERSION} SELINUX_POLICY_URL=${SELINUX_POLICY_URL} KERNEL_URL_amd64=${KERNEL_URL_amd64} KERNEL_URL_arm64=${KERNEL_URL_arm64} DOCKER_URL_amd64=${DOCKER_URL_amd64} DOCKER_URL_arm=${DOCKER_URL_arm} DOCKER_URL_arm64=${DOCKER_URL_arm64} TOOLCHAIN_arm64=${TOOLCHAIN_arm64} TOOLCHAIN_arm=${TOOLCHAIN_arm} OS_RELEASES_YML=${OS_RELEASES_YML} VBOX_MODULES_URL=${VBOX_MODULES_URL} VBOX_MODULES_URL_amd64=${VBOX_MODULES_URL_amd64} OS_SERVICES_REPO=${OS_SERVICES_REPO} IMAGE_NAME=${IMAGE_NAME} DFS_IMAGE=${DFS_IMAGE} OS_BASE_URL=${OS_BASE_URL} OS_BASE_SHA1=${OS_BASE_SHA1} OS_BASE_URL_amd64=${OS_BASE_URL_amd64} OS_BASE_URL_arm=${OS_BASE_URL_arm} OS_BASE_URL_arm64=${OS_BASE_URL_arm64}
|
||||
|
||||
ENV DOCKER_URL_amd64 ${DOCKER_URL_amd64}
|
||||
ENV DOCKER_URL_arm ${DOCKER_URL_arm}
|
||||
ENV DOCKER_URL_arm64 ${DOCKER_URL_arm64}
|
||||
ENV DOCKER_VERSION ${DOCKER_VERSION}
|
||||
ENV DOWNLOADS /usr/src/downloads
|
||||
ENV GOARCH $ARCH
|
||||
ENV HOSTNAME_DEFAULT ${HOSTNAME_DEFAULT}
|
||||
ENV HOST_ARCH ${HOST_ARCH}
|
||||
ENV IMAGE_NAME ${IMAGE_NAME}
|
||||
ENV KERNEL_URL KERNEL_URL_${ARCH}
|
||||
ENV KERNEL_URL_amd64 ${KERNEL_URL_amd64}
|
||||
ENV KERNEL_URL_arm64 ${KERNEL_URL_arm64}
|
||||
ENV OS_BASE_SHA1 OS_BASE_SHA1_${ARCH}
|
||||
ENV OS_BASE_URL OS_BASE_URL_${ARCH}
|
||||
ENV OS_BASE_URL_amd64 ${OS_BASE_URL_amd64}
|
||||
ENV OS_BASE_URL_arm ${OS_BASE_URL_arm}
|
||||
ENV OS_BASE_URL_arm64 ${OS_BASE_URL_arm64}
|
||||
ENV OS_RELEASES_YML ${OS_RELEASES_YML}
|
||||
ENV OS_REPO ${OS_REPO}
|
||||
ENV OS_SERVICES_REPO ${OS_SERVICES_REPO}
|
||||
ENV REPO_VERSION master
|
||||
ENV SELINUX_POLICY_URL ${SELINUX_POLICY_URL}
|
||||
ENV TOOLCHAIN_arm ${TOOLCHAIN_arm}
|
||||
ENV TOOLCHAIN_arm64 ${TOOLCHAIN_arm64}
|
||||
ENV VBOX_MODULES_URL ${VBOX_MODULES_URL}
|
||||
ENV VBOX_MODULES_URL VBOX_MODULES_URL_${ARCH}
|
||||
ENV VBOX_MODULES_URL_amd64 ${VBOX_MODULES_URL_amd64}
|
||||
|
||||
RUN mkdir -p ${DOWNLOADS}
|
||||
|
||||
# Download kernel
|
||||
@ -116,8 +148,7 @@ ENV GOPATH /go
|
||||
ENV PATH ${GOPATH}/bin:/usr/local/go/bin:$PATH
|
||||
|
||||
# Install Host Docker
|
||||
RUN URL=DOCKER_URL_${HOST_ARCH} && \
|
||||
curl -fL ${!URL} | tar xzf - --strip-components=1 -C /usr/bin docker/docker && \
|
||||
RUN curl -fL ${!BUILD_DOCKER_URL} > /usr/bin/docker && \
|
||||
chmod +x /usr/bin/docker
|
||||
|
||||
# Install Target Docker
|
||||
@ -127,7 +158,7 @@ RUN curl -fL ${!DOCKER_URL} > ${DOWNLOADS}/docker.tgz
|
||||
RUN go get github.com/rancher/trash
|
||||
|
||||
# Install dapper
|
||||
RUN curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m` > /usr/bin/dapper && \
|
||||
RUN curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m | sed 's/arm.*/arm/'` > /usr/bin/dapper && \
|
||||
chmod +x /usr/bin/dapper
|
||||
|
||||
# Install toolchain
|
||||
@ -177,7 +208,6 @@ RUN source /usr/src/toolchain-env; if [ "${TOOLCHAIN}" != "" ]; then \
|
||||
make install \
|
||||
;fi
|
||||
|
||||
|
||||
RUN mkdir -p images/00-rootfs/build && \
|
||||
curl -pfL ${!OS_BASE_URL} | tar xvJf - -C images/00-rootfs/build
|
||||
|
||||
|
@ -27,8 +27,9 @@ RUN rm /sbin/poweroff /sbin/reboot /sbin/halt && \
|
||||
addgroup -g 1103 sudo && \
|
||||
adduser -u 1100 -G rancher -D -h /home/rancher -s /bin/bash rancher && \
|
||||
adduser -u 1101 -G docker -D -h /home/docker -s /bin/bash docker && \
|
||||
sed -i 's/\(^docker.*\)/\1rancher/g' /etc/group && \
|
||||
sed -i 's/\(^sudo.*\)/\1rancher,docker/g' /etc/group && \
|
||||
adduser rancher docker && \
|
||||
adduser rancher sudo && \
|
||||
adduser docker sudo && \
|
||||
echo '%sudo ALL=(ALL) ALL' >> /etc/sudoers
|
||||
COPY inputrc /etc/inputrc
|
||||
COPY entry.sh /usr/sbin/entry.sh
|
||||
|
@ -143,4 +143,5 @@ if [ -x /etc/rc.local ]; then
|
||||
/etc/rc.local || true
|
||||
fi
|
||||
|
||||
export TERM=linux
|
||||
exec respawn -f /etc/respawn.conf
|
||||
|
@ -1,3 +0,0 @@
|
||||
FROM rancher/os-base
|
||||
COPY extra.sh /
|
||||
CMD ["/extra.sh"]
|
@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
DIR=$(readlink /lib/modules/$(uname -r)/build)
|
||||
STAMP=/lib/modules/$(uname -r)/.extra-done
|
||||
VER=$(basename $DIR)
|
||||
URL=https://github.com/rancher/os-kernel/releases/download/${VER}/extra.tar.gz
|
||||
|
||||
if [ -e $STAMP ]; then
|
||||
echo Kernel extras already installed in $DIR
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo Downloading $URL
|
||||
wget -O - $URL | gzip -dc | tar xf - -C /
|
||||
touch $STAMP
|
||||
|
||||
echo Kernel extras installed at $DIR
|
@ -1,3 +0,0 @@
|
||||
FROM rancher/os-base
|
||||
COPY headers.sh /
|
||||
CMD ["/headers.sh"]
|
@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
DIR=$(readlink /lib/modules/$(uname -r)/build)
|
||||
STAMP=${DIR}/.done
|
||||
VER=$(basename $DIR)
|
||||
URL=https://github.com/rancher/os-kernel/releases/download/${VER}/build.tar.gz
|
||||
|
||||
if [ -e $STAMP ]; then
|
||||
echo Headers already installed in $DIR
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo Downloading $URL
|
||||
mkdir -p $DIR
|
||||
wget -O - $URL | gzip -dc | tar xf - -C $DIR
|
||||
touch $STAMP
|
||||
|
||||
echo Headers installed at $DIR
|
@ -1,2 +0,0 @@
|
||||
FROM rancher/os-console
|
||||
CMD ["/bin/sh"]
|
@ -1,25 +0,0 @@
|
||||
FROM rancher/os-centosconsole-base
|
||||
# FROM amd64=centos:7 arm64=skip arm=armhfbuild/centos:7
|
||||
RUN yum upgrade -y && \
|
||||
yum install -y iptables openssh-server rsync sudo vim less ca-certificates psmisc htop procps-ng
|
||||
RUN rm -rf /etc/ssh/*key*
|
||||
RUN rm -fr /sbin/poweroff /sbin/shutdown /sbin/reboot /sbin/halt /usr/sbin/poweroff /usr/sbin/shutdown /usr/sbin/reboot /usr/sbin/halt
|
||||
RUN ln -s /sbin/agetty /sbin/getty
|
||||
COPY build/entry.sh build/console.sh build/docker-init build/update-ssh-keys build/rancheros-install /usr/sbin/
|
||||
RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8
|
||||
RUN groupadd --gid 1100 rancher && \
|
||||
groupadd --gid 1101 docker && \
|
||||
useradd -u 1100 -g rancher -G docker,wheel -m -s /bin/bash rancher && \
|
||||
useradd -u 1101 -g docker -G docker,wheel -m -s /bin/bash docker && \
|
||||
echo ClientAliveInterval 180 >> /etc/ssh/sshd_config && \
|
||||
echo '## allow password less for rancher user' >> /etc/sudoers && \
|
||||
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
echo '## allow password less for docker user' >> /etc/sudoers && \
|
||||
echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
ln -sf /usr/bin/docker.dist /usr/bin/docker && \
|
||||
ln -sf /usr/bin/docker-containerd.dist /usr/bin/docker-containerd && \
|
||||
ln -sf /usr/bin/docker-containerd-shim.dist /usr/bin/docker-containerd-shim && \
|
||||
ln -sf /usr/bin/docker-runc.dist /usr/bin/docker-runc
|
||||
COPY prompt.sh /etc/profile.d/
|
||||
ENTRYPOINT ["/usr/sbin/entry.sh"]
|
||||
CMD ["/usr/sbin/console.sh"]
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
rm -rf ./build
|
||||
mkdir -p ./build
|
||||
cp ./../01-base/entry.sh ./build/
|
||||
cp ./../02-console/console.sh ./build/
|
||||
cp ./../02-console/docker-init ./build/
|
||||
cp ./../02-console/update-ssh-keys ./build/
|
||||
cp ./../02-console/rancheros-install ./build/
|
@ -1 +0,0 @@
|
||||
export PS1='[\u@\h \W]\$ '
|
@ -1,24 +0,0 @@
|
||||
FROM rancher/os-debianconsole-base
|
||||
# FROM amd64=debian:jessie arm64=aarch64/debian:jessie arm=resin/rpi-raspbian:jessie
|
||||
RUN apt-get update && \
|
||||
apt-get upgrade --no-install-recommends -y && \
|
||||
apt-get install -y --no-install-recommends iptables openssh-server rsync locales sudo vim less curl ca-certificates psmisc htop
|
||||
RUN rm -rf /etc/ssh/*key*
|
||||
RUN rm -fr /sbin/poweroff /sbin/shutdown /sbin/reboot /sbin/halt /usr/sbin/poweroff /usr/sbin/shutdown /usr/sbin/reboot /usr/sbin/halt
|
||||
COPY build/entry.sh build/console.sh build/docker-init build/update-ssh-keys build/rancheros-install /usr/sbin/
|
||||
RUN locale-gen en_US.UTF-8
|
||||
RUN addgroup --gid 1100 rancher && \
|
||||
addgroup --gid 1101 docker && \
|
||||
useradd -u 1100 -g rancher -G docker,sudo -m -s /bin/bash rancher && \
|
||||
useradd -u 1101 -g docker -G docker,sudo -m -s /bin/bash docker && \
|
||||
echo ClientAliveInterval 180 >> /etc/ssh/sshd_config && \
|
||||
echo '## allow password less for rancher user' >> /etc/sudoers && \
|
||||
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
echo '## allow password less for docker user' >> /etc/sudoers && \
|
||||
echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
ln -sf /usr/bin/docker.dist /usr/bin/docker && \
|
||||
ln -sf /usr/bin/docker-containerd.dist /usr/bin/docker-containerd && \
|
||||
ln -sf /usr/bin/docker-containerd-shim.dist /usr/bin/docker-containerd-shim && \
|
||||
ln -sf /usr/bin/docker-runc.dist /usr/bin/docker-runc
|
||||
ENTRYPOINT ["/usr/sbin/entry.sh"]
|
||||
CMD ["/usr/sbin/console.sh"]
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
rm -rf ./build
|
||||
mkdir -p ./build
|
||||
cp ./../01-base/entry.sh ./build/
|
||||
cp ./../02-console/console.sh ./build/
|
||||
cp ./../02-console/docker-init ./build/
|
||||
cp ./../02-console/update-ssh-keys ./build/
|
||||
cp ./../02-console/rancheros-install ./build/
|
@ -1,25 +0,0 @@
|
||||
FROM rancher/os-fedoraconsole-base
|
||||
# FROM amd64=fedora:23 arm64=rancher/aarch64-fedora:23 arm=armv7/armhf-fedora:23
|
||||
RUN dnf upgrade -y && \
|
||||
dnf install -y iptables openssh-server rsync sudo vim less ca-certificates psmisc htop procps-ng
|
||||
RUN rm -rf /etc/ssh/*key*
|
||||
RUN rm -fr /sbin/poweroff /sbin/shutdown /sbin/reboot /sbin/halt /usr/sbin/poweroff /usr/sbin/shutdown /usr/sbin/reboot /usr/sbin/halt
|
||||
RUN ln -s /sbin/agetty /sbin/getty
|
||||
COPY build/entry.sh build/console.sh build/docker-init build/update-ssh-keys build/rancheros-install /usr/sbin/
|
||||
RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8
|
||||
RUN groupadd --gid 1100 rancher && \
|
||||
groupadd --gid 1101 docker && \
|
||||
useradd -u 1100 -g rancher -G docker,wheel -m -s /bin/bash rancher && \
|
||||
useradd -u 1101 -g docker -G docker,wheel -m -s /bin/bash docker && \
|
||||
echo ClientAliveInterval 180 >> /etc/ssh/sshd_config && \
|
||||
echo '## allow password less for rancher user' >> /etc/sudoers && \
|
||||
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
echo '## allow password less for docker user' >> /etc/sudoers && \
|
||||
echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
ln -sf /usr/bin/docker.dist /usr/bin/docker && \
|
||||
ln -sf /usr/bin/docker-containerd.dist /usr/bin/docker-containerd && \
|
||||
ln -sf /usr/bin/docker-containerd-shim.dist /usr/bin/docker-containerd-shim && \
|
||||
ln -sf /usr/bin/docker-runc.dist /usr/bin/docker-runc
|
||||
COPY prompt.sh /etc/profile.d/
|
||||
ENTRYPOINT ["/usr/sbin/entry.sh"]
|
||||
CMD ["/usr/sbin/console.sh"]
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
rm -rf ./build
|
||||
mkdir -p ./build
|
||||
cp ./../01-base/entry.sh ./build/
|
||||
cp ./../02-console/console.sh ./build/
|
||||
cp ./../02-console/docker-init ./build/
|
||||
cp ./../02-console/update-ssh-keys ./build/
|
||||
cp ./../02-console/rancheros-install ./build/
|
@ -1 +0,0 @@
|
||||
export PS1='[\u@\h \W]\$ '
|
@ -1,7 +0,0 @@
|
||||
FROM rancher/os-resizefs-base
|
||||
# FROM amd64=ubuntu:16.04 arm64=aarch64/ubuntu:16.04 arm=armhf/ubuntu:16.04
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends cloud-guest-utils parted && \
|
||||
apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
COPY resizefs.sh /
|
||||
ENTRYPOINT ["/resizefs.sh"]
|
@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
RESIZE_DEV=${RESIZE_DEV:?"RESIZE_DEV not set."}
|
||||
STAMP=/var/log/resizefs.done
|
||||
|
||||
if [ -e "${STAMP}" ]; then
|
||||
echo FS already resized.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# TODO: rm hardcoded partition number, maybe identify RANCHER_STATE partition (can be the whole device)
|
||||
if [ -b "${RESIZE_DEV}" ]; then
|
||||
growpart ${RESIZE_DEV} 1 || : # ignore error "NOCHANGE: partition 1 is size NNN. it cannot be grown"
|
||||
partprobe ${RESIZE_DEV}
|
||||
resize2fs ${RESIZE_DEV}1
|
||||
else
|
||||
echo "Block device expected: ${RESIZE_DEV} is not."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
touch $STAMP
|
@ -1,29 +0,0 @@
|
||||
FROM rancher/os-fedoraconsole-base
|
||||
# FROM amd64=fedora:23 arm64=rancher/aarch64-fedora:23 arm=armv7/armhf-fedora:23
|
||||
RUN dnf upgrade -y && \
|
||||
dnf install -y iptables openssh-server rsync sudo vim less ca-certificates psmisc htop procps-ng
|
||||
RUN rm -rf /etc/ssh/*key*
|
||||
RUN rm -fr /sbin/poweroff /sbin/shutdown /sbin/reboot /sbin/halt /usr/sbin/poweroff /usr/sbin/shutdown /usr/sbin/reboot /usr/sbin/halt
|
||||
RUN ln -s /sbin/agetty /sbin/getty
|
||||
COPY build/entry.sh build/console.sh build/docker-init build/update-ssh-keys build/rancheros-install /usr/sbin/
|
||||
RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8
|
||||
RUN groupadd --gid 1100 rancher && \
|
||||
groupadd --gid 1101 docker && \
|
||||
useradd -u 1100 -g rancher -G docker,wheel -m -s /bin/bash rancher && \
|
||||
useradd -u 1101 -g docker -G docker,wheel -m -s /bin/bash docker && \
|
||||
echo ClientAliveInterval 180 >> /etc/ssh/sshd_config && \
|
||||
echo '## allow password less for rancher user' >> /etc/sudoers && \
|
||||
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
echo '## allow password less for docker user' >> /etc/sudoers && \
|
||||
echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
ln -sf /usr/bin/docker.dist /usr/bin/docker
|
||||
COPY prompt.sh /etc/profile.d/
|
||||
|
||||
RUN dnf install -y git make gcc findutils selinux-policy-devel setools-console setools-devel
|
||||
|
||||
RUN git clone https://github.com/rancher/refpolicy.git /usr/src/refpolicy
|
||||
RUN cd /usr/src/refpolicy && git submodule init && git submodule update && \
|
||||
sed -i '/MONOLITHIC = y/c\MONOLITHIC = n' build.conf && \
|
||||
make conf && make && make install-headers
|
||||
|
||||
ENTRYPOINT ["/usr/sbin/entry.sh"]
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
rm -rf ./build
|
||||
mkdir -p ./build
|
||||
cp ./../01-base/entry.sh ./build/
|
||||
cp ./../02-console/console.sh ./build/
|
||||
cp ./../02-console/docker-init ./build/
|
||||
cp ./../02-console/update-ssh-keys ./build/
|
||||
cp ./../02-console/rancheros-install ./build/
|
@ -1 +0,0 @@
|
||||
export PS1='[\u@\h \W]\$ '
|
@ -1,24 +0,0 @@
|
||||
FROM rancher/os-ubuntuconsole-base
|
||||
# FROM amd64=ubuntu:16.04 arm64=aarch64/ubuntu:16.04 arm=armhf/ubuntu:16.04
|
||||
RUN apt-get update && \
|
||||
apt-get upgrade --no-install-recommends -y && \
|
||||
apt-get install -y --no-install-recommends iptables openssh-server rsync vim curl ca-certificates psmisc htop
|
||||
RUN rm -rf /etc/ssh/*key*
|
||||
RUN rm -fr /sbin/poweroff /sbin/shutdown /sbin/reboot /sbin/halt /usr/sbin/poweroff /usr/sbin/shutdown /usr/sbin/reboot /usr/sbin/halt
|
||||
COPY build/entry.sh build/console.sh build/docker-init build/update-ssh-keys build/rancheros-install /usr/sbin/
|
||||
RUN locale-gen en_US.UTF-8
|
||||
RUN addgroup --gid 1100 rancher && \
|
||||
addgroup --gid 1101 docker && \
|
||||
useradd -u 1100 -g rancher -G docker,sudo -m -s /bin/bash rancher && \
|
||||
useradd -u 1101 -g docker -G docker,sudo -m -s /bin/bash docker && \
|
||||
echo ClientAliveInterval 180 >> /etc/ssh/sshd_config && \
|
||||
echo '## allow password less for rancher user' >> /etc/sudoers && \
|
||||
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
echo '## allow password less for docker user' >> /etc/sudoers && \
|
||||
echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
|
||||
ln -sf /usr/bin/docker.dist /usr/bin/docker && \
|
||||
ln -sf /usr/bin/docker-containerd.dist /usr/bin/docker-containerd && \
|
||||
ln -sf /usr/bin/docker-containerd-shim.dist /usr/bin/docker-containerd-shim && \
|
||||
ln -sf /usr/bin/docker-runc.dist /usr/bin/docker-runc
|
||||
ENTRYPOINT ["/usr/sbin/entry.sh"]
|
||||
CMD ["/usr/sbin/console.sh"]
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
rm -rf ./build
|
||||
mkdir -p ./build
|
||||
cp ./../01-base/entry.sh ./build/
|
||||
cp ./../02-console/console.sh ./build/
|
||||
cp ./../02-console/docker-init ./build/
|
||||
cp ./../02-console/update-ssh-keys ./build/
|
||||
cp ./../02-console/rancheros-install ./build/
|
@ -1,2 +0,0 @@
|
||||
FROM rancher/os-ubuntuconsole
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y xfce4 slim
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
rm -rf ./build
|
||||
mkdir -p ./build
|
||||
cp ./../01-base/entry.sh ./build/
|
||||
cp ./../02-console/console.sh ./build/
|
||||
cp ./../02-console/docker-init ./build/
|
||||
cp ./../02-console/update-ssh-keys ./build/
|
||||
cp ./../02-console/rancheros-install ./build/
|
@ -7,36 +7,19 @@ BASE=images
|
||||
source $(dirname $0)/version
|
||||
cd $(dirname $0)/..
|
||||
|
||||
DO_PUSH="$1"
|
||||
|
||||
if [ -n "$CORE" ]; then
|
||||
PREFIX=0
|
||||
fi
|
||||
|
||||
if [ "${DO_PUSH}" == "--push" ]; then
|
||||
for i in $BASE/[0-9]*; do
|
||||
name="os-$(echo ${i} | cut -f2 -d-)"
|
||||
tag="${OS_REPO}/${name}:${VERSION}${SUFFIX}"
|
||||
echo Pushing ${tag}
|
||||
docker push ${tag} || :
|
||||
done
|
||||
else
|
||||
for i in $BASE/$PREFIX[0-9]*; do
|
||||
name="os-$(echo ${i} | cut -f2 -d-)"
|
||||
tag="${OS_REPO}/${name}:${VERSION}${SUFFIX}"
|
||||
echo Building ${tag}
|
||||
if [ -x ${i}/prebuild.sh ]; then
|
||||
if ${i}/prebuild.sh; then
|
||||
dapper -d --build -f ${i}/Dockerfile -- -t rancher/${name} ${i}
|
||||
${i}/prebuild.sh
|
||||
fi
|
||||
|
||||
if dapper -d --build -f ${i}/Dockerfile -- -t rancher/${name} ${i}; then
|
||||
docker tag rancher/${name} ${tag}
|
||||
elif [ "$?" != "42" ]; then
|
||||
exit 1
|
||||
else
|
||||
echo "WARN: Skipping ${tag}"
|
||||
fi
|
||||
else
|
||||
dapper -d --build -f ${i}/Dockerfile -- -t rancher/${name} ${i}
|
||||
docker tag rancher/${name} ${tag}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
@ -10,8 +10,6 @@ if [ ! -e ../bin/host_ros ]; then
|
||||
fi
|
||||
|
||||
./template
|
||||
if [ "$HOST_ARCH" = "$ARCH" ]; then
|
||||
CORE=true ./build-images
|
||||
fi
|
||||
./build-images
|
||||
./tar-images
|
||||
./layout
|
||||
|
Loading…
Reference in New Issue
Block a user