2016-03-01 01:01:33 +00:00
|
|
|
FROM rancher/os-dapper-base
|
|
|
|
|
2015-07-23 13:53:01 +00:00
|
|
|
RUN apt-get update && \
|
2016-03-01 01:01:33 +00:00
|
|
|
apt-get -y install locales sudo vim less curl wget git rsync build-essential isolinux xorriso gccgo \
|
2016-03-17 10:21:10 +00:00
|
|
|
libblkid-dev libmount-dev libselinux1-dev cpio genisoimage qemu-kvm qemu python-pip ca-certificates pkg-config tox
|
2016-03-01 01:01:33 +00:00
|
|
|
|
2016-03-15 01:26:21 +00:00
|
|
|
ARG HOST_ARCH
|
|
|
|
ENV HOST_ARCH ${HOST_ARCH}
|
2016-03-22 18:26:18 +00:00
|
|
|
RUN ln -sf go-6 /usr/bin/go && mkdir -p /usr/local && cd /usr/local && \
|
2016-03-01 01:01:33 +00:00
|
|
|
wget -O - https://storage.googleapis.com/golang/go1.6.src.tar.gz | tar -xz && \
|
2016-03-15 01:26:21 +00:00
|
|
|
cd go/src && GOROOT_BOOTSTRAP=/usr GOARCH=${HOST_ARCH} GOHOSTARCH=${HOST_ARCH} ./make.bash
|
2016-01-15 13:18:30 +00:00
|
|
|
|
2016-03-01 01:01:33 +00:00
|
|
|
ENV PATH /usr/local/go/bin:$PATH
|
2015-07-23 13:53:01 +00:00
|
|
|
RUN mkdir -p /go/src /go/bin && chmod -R 777 /go
|
|
|
|
ENV GOPATH /go
|
|
|
|
ENV PATH /go/bin:$PATH
|
|
|
|
|
2016-03-15 01:26:21 +00:00
|
|
|
ARG HOST_DOCKER_BINARY_URL
|
|
|
|
ENV HOST_DOCKER_BINARY_URL ${HOST_DOCKER_BINARY_URL}
|
|
|
|
RUN wget -O - ${HOST_DOCKER_BINARY_URL} > /usr/local/bin/docker
|
2016-01-15 13:18:30 +00:00
|
|
|
RUN chmod +x /usr/local/bin/docker
|
2015-12-14 11:38:19 +00:00
|
|
|
|
2015-12-20 05:34:07 +00:00
|
|
|
ENV DAPPER_DOCKER_SOCKET true
|
2015-12-14 11:38:19 +00:00
|
|
|
ENV DAPPER_SOURCE /go/src/github.com/rancher/os
|
2016-03-01 01:01:33 +00:00
|
|
|
ENV DAPPER_OUTPUT ./bin ./dist ./build/os-config.yml
|
2015-12-14 11:38:19 +00:00
|
|
|
ENV DAPPER_RUN_ARGS --privileged
|
|
|
|
ENV SHELL /bin/bash
|
|
|
|
WORKDIR ${DAPPER_SOURCE}
|
|
|
|
|
2016-03-01 01:01:33 +00:00
|
|
|
COPY .dockerignore.dapper .dockerignore
|
2016-02-28 19:17:03 +00:00
|
|
|
|
2016-03-01 01:01:33 +00:00
|
|
|
CMD make
|
|
|
|
|
|
|
|
ARG TOOLCHAIN
|
|
|
|
ENV TOOLCHAIN ${TOOLCHAIN}
|
|
|
|
|
2016-03-15 01:26:21 +00:00
|
|
|
RUN if [ "${TOOLCHAIN}" != "" ] && ! which ${TOOLCHAIN}-gcc; then \
|
|
|
|
apt-get install -y gcc-${TOOLCHAIN} g++-${TOOLCHAIN} \
|
|
|
|
;fi
|
|
|
|
|
2016-03-01 01:01:33 +00:00
|
|
|
RUN if [ "${TOOLCHAIN}" != "" ]; then \
|
2016-03-23 22:31:33 +00:00
|
|
|
apt-get update && \
|
2016-03-01 01:01:33 +00:00
|
|
|
cd /usr/local/src && \
|
2016-03-16 17:52:05 +00:00
|
|
|
for i in libselinux libsepol pcre3 util-linux; do \
|
2016-03-01 01:01:33 +00:00
|
|
|
apt-get build-dep -y $i && \
|
|
|
|
apt-get source -y $i \
|
|
|
|
;done \
|
|
|
|
;fi
|
|
|
|
|
|
|
|
RUN if [ "${TOOLCHAIN}" != "" ]; then \
|
|
|
|
cd /usr/local/src/pcre3-* && \
|
|
|
|
autoreconf && \
|
|
|
|
CC=${TOOLCHAIN}-gcc CXX=${TOOLCHAIN}-g++ ./configure --host=${TOOLCHAIN} --prefix=/usr/${TOOLCHAIN} && \
|
|
|
|
make -j$(nproc) && \
|
|
|
|
make install \
|
|
|
|
;fi
|
|
|
|
|
|
|
|
RUN if [ "${TOOLCHAIN}" != "" ]; then \
|
|
|
|
cd /usr/local/src/libselinux-* && \
|
|
|
|
CC=${TOOLCHAIN}-gcc CXX=${TOOLCHAIN}-g++ make CFLAGS=-Wall && \
|
2016-03-16 17:52:05 +00:00
|
|
|
make PREFIX=/usr/${TOOLCHAIN} DESTDIR=/usr/${TOOLCHAIN} install && \
|
|
|
|
cd /usr/local/src/libsepol-* && \
|
|
|
|
CC=${TOOLCHAIN}-gcc CXX=${TOOLCHAIN}-g++ make CFLAGS=-Wall && \
|
2016-03-01 01:01:33 +00:00
|
|
|
make PREFIX=/usr/${TOOLCHAIN} DESTDIR=/usr/${TOOLCHAIN} install \
|
|
|
|
;fi
|
|
|
|
|
|
|
|
RUN if [ "${TOOLCHAIN}" != "" ]; then \
|
|
|
|
cd /usr/local/src/util-linux-* && \
|
|
|
|
autoreconf && \
|
|
|
|
CC=${TOOLCHAIN}-gcc CXX=${TOOLCHAIN}-g++ ./configure --host=${TOOLCHAIN} --prefix=/usr/${TOOLCHAIN} \
|
|
|
|
--disable-all-programs \
|
|
|
|
--enable-libmount \
|
|
|
|
--enable-libblkid \
|
|
|
|
--enable-libuuid \
|
|
|
|
--enable-mount && \
|
|
|
|
make -j$(nproc) && \
|
|
|
|
make install \
|
|
|
|
;fi
|