mirror of https://github.com/docker/docs.git
219 lines
7.5 KiB
Docker
219 lines
7.5 KiB
Docker
FROM debian:jessie
|
|
|
|
RUN apt-get update && apt-get -y install \
|
|
autoconf build-essential curl \
|
|
libxml2-dev libssl-dev \
|
|
p7zip-full \
|
|
hfsplus hfsutils hfsprogs cpio
|
|
|
|
# We need the bomutils to create the Mac OS X Bill of Materials (BOM) files.
|
|
# https://github.com/hogliux/bomutils
|
|
RUN curl -fsSL https://github.com/hogliux/bomutils/archive/0.2.tar.gz | tar xvz && \
|
|
cd bomutils-* && \
|
|
make && make install
|
|
|
|
# Needed to pack/unpack the .pkg files
|
|
RUN curl -fsSL https://github.com/mackyle/xar/archive/xar-1.6.1.tar.gz | tar xvz && \
|
|
cd xar-*/xar && \
|
|
./autogen.sh && ./configure && \
|
|
make && make install
|
|
|
|
ENV VBOX_VERSION 5.1.4
|
|
ENV VBOX_REV 110228
|
|
|
|
RUN curl -fsSL -o /vbox.dmg http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VirtualBox-$VBOX_VERSION-$VBOX_REV-OSX.dmg \
|
|
&& echo "$(curl -fsSL 'http://download.virtualbox.org/virtualbox/'"$VBOX_VERSION"'/SHA256SUMS' | awk '$2 ~ /-OSX.dmg$/ { print $1 }') */vbox.dmg" | sha256sum -c -
|
|
|
|
# Download the Docker parts
|
|
|
|
ENV INSTALLER_VERSION 1.12.1
|
|
ENV DOCKER_VERSION 1.12.1
|
|
|
|
# Why '--strip-components 3'? The client binary is in usr/local/bin/docker in
|
|
# the tar archive. If we extract directly, it will create a usr/local/bin
|
|
# subdirectory (not what we want). So we use --strip-components to remove the
|
|
# `usr/local/bin` part and drop the bin in the current directory.
|
|
RUN curl -fsSL -o dockerbins.tgz "https://get.docker.com/builds/Darwin/x86_64/docker-${DOCKER_VERSION}.tgz" && \
|
|
tar xvf dockerbins.tgz docker/docker --strip-components 1 && \
|
|
rm dockerbins.tgz
|
|
|
|
RUN chmod +x /docker
|
|
|
|
|
|
ENV DOCKER_MACHINE_VERSION 0.8.1
|
|
RUN curl -fsSL -o /docker-machine https://github.com/docker/machine/releases/download/v$DOCKER_MACHINE_VERSION/docker-machine-Darwin-x86_64
|
|
|
|
RUN chmod +x /docker-machine
|
|
|
|
ENV DOCKER_COMPOSE_VERSION 1.8.0
|
|
RUN curl -fsSL -o /docker-compose https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-Darwin-x86_64
|
|
RUN chmod +x /docker-compose
|
|
|
|
ENV BOOT2DOCKER_ISO_VERSION $DOCKER_VERSION
|
|
RUN curl -fsSL -o /boot2docker.iso https://github.com/boot2docker/boot2docker/releases/download/v$DOCKER_VERSION/boot2docker.iso
|
|
|
|
ENV KITEMATIC_VERSION 0.12.0
|
|
RUN curl -fsSL -o /kitematic.zip https://github.com/kitematic/kitematic/releases/download/v$KITEMATIC_VERSION/Kitematic-$KITEMATIC_VERSION-Mac.zip
|
|
|
|
ENV MIXPANEL_TOKEN c306ae65c33d7d09fe3e546f36493a6e
|
|
|
|
# Extract the VirtualBox .pkg
|
|
RUN mkdir -p /mpkg/vbox && \
|
|
cd /mpkg/vbox && \
|
|
7z x /vbox.dmg -ir'!*.hfs' && \
|
|
7z x `find . -name '*.hfs'` -ir'!*.pkg' && \
|
|
mv VirtualBox/VirtualBox.pkg . && \
|
|
rm -rf vbox.dmg && \
|
|
rm -rf `find . -name '*.hfs'`
|
|
|
|
# Extract the .pkg files
|
|
RUN cd /mpkg/vbox && \
|
|
mv VirtualBox.pkg /tmp && \
|
|
xar -xf /tmp/VirtualBox.pkg && \
|
|
rm -rf /tmp/VirtualBox.pkg
|
|
|
|
RUN cd /mpkg/vbox && \
|
|
mv *.pkg .. && \
|
|
rm -rf vbox
|
|
|
|
# Add components
|
|
COPY osx/mpkg/Distribution /mpkg/Distribution
|
|
|
|
# docker.pkg
|
|
COPY osx/mpkg/docker.pkg /mpkg/docker.pkg
|
|
RUN cd /mpkg/docker.pkg && \
|
|
mkdir rootfs && \
|
|
cd rootfs && \
|
|
mkdir -p usr/local/bin && \
|
|
mv /docker usr/local/bin/ && \
|
|
ls -al /usr/local/bin/ && \
|
|
find . | cpio -o --format odc | gzip -c > ../Payload && \
|
|
mkbom . ../Bom && \
|
|
sed -i \
|
|
-e "s/%DOCKER_NUMBER_OF_FILES%/`find . | wc -l`/g" \
|
|
-e "s/%DOCKER_INSTALL_KBYTES%/`du -sk | cut -f1`/g" \
|
|
-e "s/%DOCKER_VERSION%/$DOCKER_VERSION/g" \
|
|
../PackageInfo /mpkg/Distribution && \
|
|
cd .. && \
|
|
rm -rf ./rootfs
|
|
|
|
# kitematicapp.pkg
|
|
COPY osx/mpkg/kitematicapp.pkg /mpkg/kitematicapp.pkg
|
|
RUN cd /mpkg/kitematicapp.pkg && \
|
|
mkdir ./rootfs && \
|
|
cd ./rootfs && \
|
|
7z x /kitematic.zip && \
|
|
rm -rf ./__MACOSX && \
|
|
ls -al . && \
|
|
find . | cpio -o --format odc | gzip -c > ../Payload && \
|
|
mkbom . ../Bom && \
|
|
sed -i \
|
|
-e "s/%KITEMATICAPP_NUMBER_OF_FILES%/`find . | wc -l`/g" \
|
|
-e "s/%KITEMATICAPP_INSTALL_KBYTES%/`du -sk | cut -f1`/g" \
|
|
-e "s/%KITEMATICAPP_VERSION%/$KITEMATIC_VERSION/g" \
|
|
../PackageInfo /mpkg/Distribution && \
|
|
cd .. && \
|
|
rm -rf ./rootfs
|
|
|
|
# dockermachine.pkg
|
|
COPY osx/mpkg/dockermachine.pkg /mpkg/dockermachine.pkg
|
|
RUN cd /mpkg/dockermachine.pkg && \
|
|
mkdir rootfs && \
|
|
cd rootfs && \
|
|
mkdir -p usr/local/bin && \
|
|
mv /docker-machine usr/local/bin/ && \
|
|
ls -al /usr/local/bin/ && \
|
|
find . | cpio -o --format odc | gzip -c > ../Payload && \
|
|
mkbom . ../Bom && \
|
|
sed -i \
|
|
-e "s/%DOCKERMACHINE_NUMBER_OF_FILES%/`find . | wc -l`/g" \
|
|
-e "s/%DOCKERMACHINE_INSTALL_KBYTES%/`du -sk | cut -f1`/g" \
|
|
-e "s/%DOCKERMACHINE_VERSION%/$DOCKER_MACHINE_VERSION/g" \
|
|
../PackageInfo /mpkg/Distribution && \
|
|
cd .. && \
|
|
rm -rf ./rootfs
|
|
|
|
# dockercompose.pkg
|
|
COPY osx/mpkg/dockercompose.pkg /mpkg/dockercompose.pkg
|
|
RUN cd /mpkg/dockercompose.pkg && \
|
|
mkdir rootfs && \
|
|
cd rootfs && \
|
|
mkdir -p usr/local/bin && \
|
|
mv /docker-compose usr/local/bin/ && \
|
|
ls -al /usr/local/bin/ && \
|
|
find . | cpio -o --format odc | gzip -c > ../Payload && \
|
|
mkbom . ../Bom && \
|
|
sed -i \
|
|
-e "s/%DOCKERCOMPOSE_NUMBER_OF_FILES%/`find . | wc -l`/g" \
|
|
-e "s/%DOCKERCOMPOSE_INSTALL_KBYTES%/`du -sk | cut -f1`/g" \
|
|
-e "s/%DOCKERCOMPOSE_VERSION%/$DOCKER_COMPOSE_VERSION/g" \
|
|
../PackageInfo /mpkg/Distribution && \
|
|
cd .. && \
|
|
rm -rf ./rootfs
|
|
|
|
# boot2dockeriso.pkg
|
|
COPY osx/mpkg/boot2dockeriso.pkg /mpkg/boot2dockeriso.pkg
|
|
RUN cd /mpkg/boot2dockeriso.pkg && \
|
|
cd Scripts && find . | cpio -o --format odc | gzip -c > ../Scripts.bin && cd .. && \
|
|
rm -r Scripts && mv Scripts.bin Scripts && \
|
|
mkdir ./rootfs && \
|
|
cd ./rootfs && \
|
|
cp /boot2docker.iso . && \
|
|
find . | cpio -o --format odc | gzip -c > ../Payload && \
|
|
mkbom . ../Bom && \
|
|
sed -i \
|
|
-e "s/%BOOT2DOCKER_ISO_NUMBER_OF_FILES%/`find . | wc -l`/g" \
|
|
-e "s/%BOOT2DOCKER_ISO_INSTALL_KBYTES%/`du -sk | cut -f1`/g" \
|
|
-e "s/%BOOT2DOCKER_ISO_VERSION%/$BOOT2DOCKER_ISO_VERSION/g" \
|
|
../PackageInfo /mpkg/Distribution && \
|
|
cd .. && \
|
|
rm -rf ./rootfs
|
|
|
|
# dockerquickstartterminalapp.pkg
|
|
COPY osx/mpkg/dockerquickstartterminalapp.pkg /mpkg/dockerquickstartterminalapp.pkg
|
|
COPY osx/mpkg/quickstart.app /mpkg/quickstart.app
|
|
RUN cd /mpkg/dockerquickstartterminalapp.pkg && \
|
|
mkdir ./rootfs && \
|
|
cd ./rootfs && \
|
|
mv /mpkg/quickstart.app ./Docker\ Quickstart\ Terminal.app && \
|
|
find . | cpio -o --format odc | gzip -c > ../Payload && \
|
|
mkbom . ../Bom && \
|
|
sed -i \
|
|
-e "s/%DOCKERQUICKSTARTTERMINALAPP_NUMBER_OF_FILES%/`find . | wc -l`/g" \
|
|
-e "s/%DOCKERQUICKSTARTTERMINALAPP_INSTALL_KBYTES%/`du -sk | cut -f1`/g" \
|
|
-e "s/%DOCKERQUICKSTARTTERMINALAPP_VERSION%/$INSTALLER_VERSION/g" \
|
|
../PackageInfo /mpkg/Distribution && \
|
|
cd .. && \
|
|
rm -rf ./rootfs
|
|
|
|
COPY osx/mpkg/Resources /mpkg/Resources
|
|
COPY osx/mpkg/Plugins /mpkg/Plugins
|
|
|
|
RUN sed -i \
|
|
-e "s/%MIXPANEL_TOKEN%/$MIXPANEL_TOKEN/g" \
|
|
-e "s/%INSTALLER_VERSION%/$INSTALLER_VERSION/g" \
|
|
mpkg/Plugins/*.bundle/Contents/Info.plist
|
|
RUN sed -i \
|
|
-e "s/%INSTALLER_VERSION%/$INSTALLER_VERSION/g" \
|
|
mpkg/Plugins/*.bundle/Contents/Resources/*.html
|
|
RUN sed -i \
|
|
-e "s/%INSTALLER_VERSION%/$INSTALLER_VERSION/g" \
|
|
mpkg/Resources/en.lproj/welcome.rtfd/TXT.rtf
|
|
RUN sed -i \
|
|
-e "s/%VBOX_VERSION%/$VBOX_VERSION/g" \
|
|
/mpkg/Distribution && \
|
|
sed -i \
|
|
-e "s/%VBOX_VERSION%/$VBOX_VERSION/g" \
|
|
-e "s/%DOCKER_VERSION%/$DOCKER_VERSION/g" \
|
|
-e "s/%DOCKERMACHINE_VERSION%/$DOCKER_MACHINE_VERSION/g" \
|
|
-e "s/%DOCKERCOMPOSE_VERSION%/$DOCKER_COMPOSE_VERSION/g" \
|
|
-e "s/%BOOT2DOCKER_ISO_VERSION%/$BOOT2DOCKER_ISO_VERSION/g" \
|
|
-e "s/%DOCKERQUICKSTARTTERMINALAPP_VERSION%/$INSTALLER_VERSION/g" \
|
|
-e "s/%KITEMATICAPP_VERSION%/$KITEMATIC_VERSION/g" \
|
|
mpkg/Resources/en.lproj/Localizable.strings
|
|
|
|
# Repackage back. Yes, --compression=none is mandatory.
|
|
# or this won't install in OSX.
|
|
RUN cd /mpkg && \
|
|
xar -c --compression=none -f /DockerToolbox.pkg .
|