Skip to content

docker: new #150

Merged
merged 2 commits into from
Oct 7, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions docker.be0
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
#!/usr/bin/env beesh

# BEE_VERSION docker-1.12.1-1.bee
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The suffix could be removed.


# NOTE: We require a running docker environment. For the first bootstrap
# this can be provided by the package docker_binary

## this file was created by bee init and should be executed to build a
## bee-package. (Additional hints are located at the end of this file.)

###############################################################################
## The source URL(s) define the location of the sources that will be
## downloaded. Version variables may be used to simplify reuse of this bee-file.

# SRCURL[0]=""

###############################################################################
## Add URLs/pathes to patch files to the PATCHURL array.
## The sources will be patched in the order of the array.

# PATCHURL+=()

###############################################################################
## Add filename patterns to the EXCLUDE array of files that should not
## be added to you package but may be present in the image directory.

# EXCLUDE+=()

###############################################################################
## Uncomment the next statement, if the software may not be able to be built
## outside the source directory and needs to be built inside the source
## directory.

build_in_sourcedir

###############################################################################
## bee cannot detect buildtypes specified in subdirectories.
## Sometimes packages "hide" the real sources in a subdirectory named
## 'src' or 'cmake' or ..
## use 'sourcesubdir_append' to specify this directory if known.

# sourcesubdir_append src


###############################################################################
## Change the default (auto-detected) steps to
## extract, patch, configure/setup, build and install the software.
## Make sure the mee_install function does install everything to the
## image directory "${D}"

mee_extract() {
git clone https://github.com/docker/docker.git $S
( cd $S && git checkout v${PKGVERSION} )
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’d use a release archive. This saves time, and simplifies the code.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tried that first, but the build procedure expects git. Probably the usual "git describe" somewhere.

}

#mee_patch() {
# bee_patch "${@}"
#}

mee_configure() {
: not needed
}

mee_build() {
make build
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prefix with startcmd?

make binary
}

mee_install() {
install --directory $D$BINDIR
install --directory $D$SYSCONFDIR/default
install --directory $D$SYSCONFDIR/systemd/system

V=$PKGVERSION

(
cd $B/bundles/latest/binary-client

install docker-$V $D$BINDIR/docker

cd $B/bundles/latest/binary-daemon

install --target-directory $D$BINDIR docker-containerd
install --target-directory $D$BINDIR docker-containerd-ctr
install --target-directory $D$BINDIR docker-containerd-shim
install docker-proxy-$V $D$BINDIR/docker-proxy
install --target-directory $D$BINDIR docker-runc
install dockerd-$V $D$BINDIR/dockerd
)

cat >$D$SYSCONFDIR/default/docker <<-'__EOF__'
DOCKER_OPTS="--storage-driver=overlay2"
__EOF__

cat >$D$SYSCONFDIR/systemd/system/docker.service <<-'__EOF__'
[Unit]
Description=Docker Application Container Engine
#Documentation=https://docs.docker.com
After=network.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
#LimitNOFILE=infinity
#LimitNPROC=infinity
#LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
#TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
#Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
StandardOutput=syslog

[Install]
#WantedBy=multi-user.target
__EOF__
}

## by default this may be 'make install DESTDIR="${D}"'

###############################################################################
##
## Additional hints:
##
## The name of this bee-file should follow the following naming convention:
## pkgname-pkgversion-pkgrevision.bee
##
## You may remove all comments as long as SRCURL[0] is set.
##
## Everything in this file will be executed in a bash environment.
##
## Build the package by executing
## './pkg-version-N.bee' or
## 'beesh ./pkg-version-N.bee'
##
## see http://beezinga.org/
##