Add reflective alpine images to other components
Signed-off-by: Eli Uriegas <eli.uriegas@docker.com> Upstream-commit: 0435cef6a945dc1c57b51cb24b36aaf66be8d8cc Component: packaging
This commit is contained in:
@ -1,12 +1,13 @@
|
||||
ARCH=$(shell uname -m)
|
||||
ALPINE:=$(shell $(CURDIR)/../detect_alpine_image)
|
||||
ENGINE_DIR:=$(CURDIR)/../../engine
|
||||
CLI_DIR:=$(CURDIR)/../../cli
|
||||
GITCOMMIT=$(shell cd $(ENGINE_DIR) && git rev-parse --short HEAD)
|
||||
VERSION=$(shell cat $(ENGINE_DIR)/VERSION)
|
||||
DOCKER_EXPERIMENTAL=0
|
||||
GEN_RPM_VER=$(shell ./gen-rpm-ver $(ENGINE_DIR) $(VERSION))
|
||||
CHOWN=docker run --rm -i -v $(CURDIR):/v -w /v alpine chown
|
||||
RPMBUILD=docker run --privileged --rm -i \
|
||||
CHOWN=docker run --rm -i -v $(CURDIR):/v -w /v $(ALPINE) chown
|
||||
RPMBUILD=docker run --privileged --rm -i\
|
||||
-v $(CURDIR)/rpmbuild/SOURCES:/root/rpmbuild/SOURCES \
|
||||
-v $(CURDIR)/rpmbuild/BUILD:/root/rpmbuild/BUILD \
|
||||
-v $(CURDIR)/rpmbuild/BUILDROOT:/root/rpmbuild/BUILDROOT \
|
||||
@ -56,7 +57,7 @@ rpmbuild/SOURCES/cli.tgz:
|
||||
docker run --rm -i -w /v \
|
||||
-v $(CLI_DIR):/cli \
|
||||
-v $(CURDIR)/rpmbuild/SOURCES:/v \
|
||||
alpine \
|
||||
$(ALPINE) \
|
||||
tar -C / -c -z -f /v/cli.tgz --exclude .git cli
|
||||
|
||||
rpmbuild/SOURCES/engine.tgz:
|
||||
@ -64,5 +65,5 @@ rpmbuild/SOURCES/engine.tgz:
|
||||
docker run --rm -i -w /v \
|
||||
-v $(ENGINE_DIR):/engine \
|
||||
-v $(CURDIR)/rpmbuild/SOURCES:/v \
|
||||
alpine \
|
||||
$(ALPINE) \
|
||||
tar -C / -c -z -f /v/engine.tgz --exclude .git engine
|
||||
|
||||
17
components/packaging/rpm/fedora-26/Dockerfile.x86_64
Normal file
17
components/packaging/rpm/fedora-26/Dockerfile.x86_64
Normal file
@ -0,0 +1,17 @@
|
||||
FROM registry.fedoraproject.org/fedora:26
|
||||
RUN dnf -y upgrade
|
||||
RUN dnf install -y @development-tools fedora-packager
|
||||
RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel systemd-devel tar git cmake vim-common
|
||||
ENV GO_VERSION 1.8.3
|
||||
ENV DISTRO fedora
|
||||
ENV SUITE 26
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV GOPATH /go
|
||||
ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin
|
||||
ENV AUTO_GOPATH 1
|
||||
ENV DOCKER_BUILDTAGS pkcs11 seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
RUN mkdir -p /go/src/github.com/docker && mkdir -p /go/src/github.com/opencontainers
|
||||
COPY docker-ce.spec /root/rpmbuild/SPECS/docker-ce.spec
|
||||
WORKDIR /root/rpmbuild
|
||||
ENTRYPOINT ["/bin/rpmbuild"]
|
||||
195
components/packaging/rpm/fedora-26/docker-ce.spec
Normal file
195
components/packaging/rpm/fedora-26/docker-ce.spec
Normal file
@ -0,0 +1,195 @@
|
||||
Name: docker-ce
|
||||
Version: %{_version}
|
||||
Release: %{_release}%{?dist}
|
||||
Summary: The open-source application container engine
|
||||
Group: Tools/Docker
|
||||
License: ASL 2.0
|
||||
Source0: engine.tgz
|
||||
Source1: cli.tgz
|
||||
URL: https://www.docker.com
|
||||
Vendor: Docker
|
||||
Packager: Docker <support@docker.com>
|
||||
|
||||
# DWZ problem with multiple golang binary, see bug
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12
|
||||
%global _dwz_low_mem_die_limit 0
|
||||
%global is_systemd 1
|
||||
%global with_selinux 1
|
||||
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
|
||||
# required packages on install
|
||||
Requires: /bin/sh
|
||||
Requires: container-selinux >= 2.9
|
||||
Requires: iptables
|
||||
Requires: libcgroup
|
||||
Requires: systemd-units
|
||||
Requires: tar
|
||||
Requires: xz
|
||||
|
||||
# Resolves: rhbz#1165615
|
||||
Requires: device-mapper-libs >= 1.02.90-1
|
||||
|
||||
# conflicting packages
|
||||
Conflicts: docker
|
||||
Conflicts: docker-io
|
||||
Conflicts: docker-engine-cs
|
||||
|
||||
# Obsolete packages
|
||||
Obsoletes: docker-ce-selinux
|
||||
Obsoletes: docker-engine-selinux
|
||||
Obsoletes: docker-engine
|
||||
|
||||
%description
|
||||
Docker is an open source project to build, ship and run any application as a
|
||||
lightweight container.
|
||||
|
||||
Docker containers are both hardware-agnostic and platform-agnostic. This means
|
||||
they can run anywhere, from your laptop to the largest EC2 compute instance and
|
||||
everything in between - and they don't require you to use a particular
|
||||
language, framework or packaging system. That makes them great building blocks
|
||||
for deploying and scaling web apps, databases, and backend services without
|
||||
depending on a particular stack or provider.
|
||||
|
||||
%prep
|
||||
%setup -q -c -n src -a 1
|
||||
|
||||
%build
|
||||
export DOCKER_GITCOMMIT=%{_gitcommit}
|
||||
mkdir -p /go/src/github.com/docker
|
||||
rm -f /go/src/github.com/docker/cli
|
||||
ln -s /root/rpmbuild/BUILD/src/cli /go/src/github.com/docker/cli
|
||||
pushd /go/src/github.com/docker/cli
|
||||
make VERSION=%{_origversion} GITCOMMIT=%{_gitcommit} dynbinary manpages # cli
|
||||
popd
|
||||
pushd engine
|
||||
TMP_GOPATH="/go" hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic tini
|
||||
hack/make.sh dynbinary
|
||||
popd
|
||||
|
||||
%check
|
||||
cli/build/docker -v
|
||||
engine/bundles/%{_origversion}/dynbinary-daemon/dockerd -v
|
||||
|
||||
%install
|
||||
# install binary
|
||||
install -d $RPM_BUILD_ROOT/%{_bindir}
|
||||
install -p -m 755 cli/build/docker $RPM_BUILD_ROOT/%{_bindir}/docker
|
||||
install -p -m 755 engine/bundles/%{_origversion}/dynbinary-daemon/dockerd-%{_origversion} $RPM_BUILD_ROOT/%{_bindir}/dockerd
|
||||
|
||||
# install proxy
|
||||
install -p -m 755 /usr/local/bin/docker-proxy $RPM_BUILD_ROOT/%{_bindir}/docker-proxy
|
||||
|
||||
# install containerd
|
||||
install -p -m 755 /usr/local/bin/docker-containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd
|
||||
install -p -m 755 /usr/local/bin/docker-containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim
|
||||
install -p -m 755 /usr/local/bin/docker-containerd-ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr
|
||||
|
||||
# install runc
|
||||
install -p -m 755 /usr/local/bin/docker-runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc
|
||||
|
||||
# install tini
|
||||
install -p -m 755 /usr/local/bin/docker-init $RPM_BUILD_ROOT/%{_bindir}/docker-init
|
||||
|
||||
# install udev rules
|
||||
install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d
|
||||
install -p -m 644 engine/contrib/udev/80-docker.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/80-docker.rules
|
||||
|
||||
# add init scripts
|
||||
install -d $RPM_BUILD_ROOT/etc/sysconfig
|
||||
install -d $RPM_BUILD_ROOT/%{_initddir}
|
||||
install -d $RPM_BUILD_ROOT/%{_unitdir}
|
||||
install -p -m 644 /systemd/docker.service $RPM_BUILD_ROOT/%{_unitdir}/docker.service
|
||||
# add bash, zsh, and fish completions
|
||||
install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions
|
||||
install -d $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions
|
||||
install -d $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d
|
||||
install -p -m 644 engine/contrib/completion/bash/docker $RPM_BUILD_ROOT/usr/share/bash-completion/completions/docker
|
||||
install -p -m 644 engine/contrib/completion/zsh/_docker $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions/_docker
|
||||
install -p -m 644 engine/contrib/completion/fish/docker.fish $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d/docker.fish
|
||||
|
||||
# install manpages
|
||||
install -d %{buildroot}%{_mandir}/man1
|
||||
install -p -m 644 cli/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1
|
||||
install -d %{buildroot}%{_mandir}/man5
|
||||
install -p -m 644 cli/man/man5/*.5 $RPM_BUILD_ROOT/%{_mandir}/man5
|
||||
install -d %{buildroot}%{_mandir}/man8
|
||||
install -p -m 644 cli/man/man8/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8
|
||||
|
||||
# add vimfiles
|
||||
install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc
|
||||
install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect
|
||||
install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax
|
||||
install -p -m 644 engine/contrib/syntax/vim/doc/dockerfile.txt $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc/dockerfile.txt
|
||||
install -p -m 644 engine/contrib/syntax/vim/ftdetect/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect/dockerfile.vim
|
||||
install -p -m 644 engine/contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax/dockerfile.vim
|
||||
|
||||
# add nano
|
||||
install -d $RPM_BUILD_ROOT/usr/share/nano
|
||||
install -p -m 644 engine/contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc
|
||||
|
||||
mkdir -p build-docs
|
||||
for engine_file in AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md; do
|
||||
cp "engine/$engine_file" "build-docs/engine-$engine_file"
|
||||
done
|
||||
for cli_file in LICENSE MAINTAINERS NOTICE README.md; do
|
||||
cp "cli/$cli_file" "build-docs/cli-$cli_file"
|
||||
done
|
||||
|
||||
# list files owned by the package here
|
||||
%files
|
||||
%doc build-docs/engine-AUTHORS build-docs/engine-CHANGELOG.md build-docs/engine-CONTRIBUTING.md build-docs/engine-LICENSE build-docs/engine-MAINTAINERS build-docs/engine-NOTICE build-docs/engine-README.md
|
||||
%doc build-docs/cli-LICENSE build-docs/cli-MAINTAINERS build-docs/cli-NOTICE build-docs/cli-README.md
|
||||
/%{_bindir}/docker
|
||||
/%{_bindir}/dockerd
|
||||
/%{_bindir}/docker-containerd
|
||||
/%{_bindir}/docker-containerd-shim
|
||||
/%{_bindir}/docker-containerd-ctr
|
||||
/%{_bindir}/docker-proxy
|
||||
/%{_bindir}/docker-runc
|
||||
/%{_bindir}/docker-init
|
||||
/%{_sysconfdir}/udev/rules.d/80-docker.rules
|
||||
/%{_unitdir}/docker.service
|
||||
/usr/share/bash-completion/completions/docker
|
||||
/usr/share/zsh/vendor-completions/_docker
|
||||
/usr/share/fish/vendor_completions.d/docker.fish
|
||||
%doc
|
||||
/%{_mandir}/man1/*
|
||||
/%{_mandir}/man5/*
|
||||
/%{_mandir}/man8/*
|
||||
/usr/share/vim/vimfiles/doc/dockerfile.txt
|
||||
/usr/share/vim/vimfiles/ftdetect/dockerfile.vim
|
||||
/usr/share/vim/vimfiles/syntax/dockerfile.vim
|
||||
/usr/share/nano/Dockerfile.nanorc
|
||||
|
||||
%post
|
||||
%systemd_post docker
|
||||
if ! getent group docker > /dev/null; then
|
||||
groupadd --system docker
|
||||
fi
|
||||
|
||||
%preun
|
||||
%systemd_preun docker
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart docker
|
||||
|
||||
%changelog
|
||||
|
||||
* Wed Jun 21 2017 <eli.uriegas@docker.com> 17.06.0-ce
|
||||
- release docker-ce 17.06.0-ce
|
||||
|
||||
* Mon Jun 19 2017 <eli.uriegas@docker.com> 17.06.0-ce-rc5
|
||||
- release docker-ce 17.06.0-ce-rc5
|
||||
|
||||
* Thu Jun 15 2017 <andrewhsu@docker.com> 17.06.0-ce-rc4
|
||||
- release docker-ce 17.06.0-ce-rc4
|
||||
|
||||
* Tue Jun 13 2017 <andrewhsu@docker.com> 17.06.0-ce-rc3
|
||||
- release docker-ce 17.06.0-ce-rc3
|
||||
|
||||
* Wed Jun 07 2017 <andrewhsu@docker.com> 17.06.0-ce-rc2
|
||||
- release docker-ce 17.06.0-ce-rc2
|
||||
|
||||
* Mon May 29 2017 <andrewhsu@docker.com> 17.06.0-ce-rc1
|
||||
- release docker-ce 17.06.0-ce-rc1
|
||||
@ -1,9 +1,10 @@
|
||||
SHELL:=/bin/bash
|
||||
ALPINE:=$(shell $(CURDIR)/../detect_alpine_image)
|
||||
ENGINE_DIR:=$(CURDIR)/../../engine
|
||||
CLI_DIR:=$(CURDIR)/../../cli
|
||||
ENGINE_VER=$(shell cat $(ENGINE_DIR)/VERSION)
|
||||
VERSION=$(shell cat $(ENGINE_DIR)/VERSION)
|
||||
CHOWN=docker run --rm -v $(CURDIR):/v -w /v alpine chown
|
||||
CHOWN=docker run --rm -v $(CURDIR):/v -w /v $(ALPINE) chown
|
||||
HASH_CMD=docker run -v $(CURDIR):/sum -w /sum debian:jessie bash hash_files
|
||||
DIR_TO_HASH:=build/linux
|
||||
|
||||
@ -39,7 +40,7 @@ cross-win: cross-all-cli cross-win-engine ## create zip file with windows x86_64
|
||||
mkdir -p build/win/docker
|
||||
cp $(CLI_DIR)/build/docker-windows-amd64 build/win/docker/docker.exe
|
||||
cp $(ENGINE_DIR)/bundles/$(ENGINE_VER)/cross/windows/amd64/dockerd-$(ENGINE_VER).exe build/win/docker/dockerd.exe
|
||||
docker run --rm -v $(CURDIR)/build/win:/v -w /v alpine sh -c 'apk update&&apk add zip&&zip -r docker-$(VERSION).zip docker'
|
||||
docker run --rm -v $(CURDIR)/build/win:/v -w /v $(ALPINE) sh -c 'apk update&&apk add zip&&zip -r docker-$(VERSION).zip docker'
|
||||
$(CHOWN) -R $(shell id -u):$(shell id -g) build
|
||||
|
||||
cross-arm: cross-all-cli ## create tgz with linux armhf client only
|
||||
|
||||
Reference in New Issue
Block a user