Skip to content

Commit

Permalink
docker: add Dockerfiles for all risk levels (#1914)
Browse files Browse the repository at this point in the history
Signed-off-by: Kyle Fazzari <kyrofa@ubuntu.com>
  • Loading branch information
Kyle Fazzari committed Feb 12, 2018
1 parent 6bd4c9e commit 512c544
Show file tree
Hide file tree
Showing 7 changed files with 74 additions and 37 deletions.
27 changes: 27 additions & 0 deletions docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Creating docker containers for snapcraft

## Setup

sudo snap install docker

Ensure networking works, in some cases `dockerd` might need to have something
like `--dns=8.8.8.8` added to the command.

## Creating containers

There are four separate Dockerfiles here, each one corresponding to their
respective risk level:

- **edge.Dockerfile**: Using the snap from edge
- **beta.Dockerfile**: Using the snap from beta
- **candidate.Dockerfile**: Using the snap from candidate
- **stable.Dockerfile**: Using the snap from stable

Build the docker image with the following (note that `--network host` is not
strictly needed if a proper docker bridge is setup):

docker build --no-cache -f <risk>.Dockerfile --label snapcore/snapcraft --tag snapcore/snapcraft:<risk> --network host .

You can push that image with:

docker push snapcore/snapcraft:<risk>
23 changes: 0 additions & 23 deletions docker/Readme.md

This file was deleted.

9 changes: 2 additions & 7 deletions docker/snap-beta.Dockerfile → docker/beta.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,13 @@ RUN apt-get update && \
mkdir -p /snap/core && unsquashfs -d /snap/core/current core.snap && rm core.snap && \
curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/snapcraft?channel=beta' | jq '.download_url' -r) --output snapcraft.snap && \
mkdir -p /snap/snapcraft && unsquashfs -d /snap/snapcraft/current snapcraft.snap && rm snapcraft.snap && \
mkdir -p /snap/bin && \
echo "#!/bin/sh" > /snap/bin/snapcraft && \
echo 'exec $SNAP/usr/bin/python3 $SNAP/bin/snapcraft "$@"' >> /snap/bin/snapcraft && \
chmod a+x /snap/bin/snapcraft && \
apt remove --yes --purge curl jq squashfs-tools && \
apt-get autoclean --yes && \
apt-get clean --yes

COPY bin/snapcraft-wrapper /snap/bin/snapcraft


ENV SNAP=/snap/snapcraft/current
ENV SNAP_NAME=snapcraft
ENV SNAP_VERSION=beta
ENV PATH=/snap/bin:$PATH
# Required by click.
ENV LC_ALL C.UTF-8
3 changes: 3 additions & 0 deletions docker/bin/snapcraft-wrapper
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
export SNAP_VERSION="$(awk '/^version:/{print $2}' '/snap/snapcraft/current/meta/snap.yaml')"
exec $SNAP/usr/bin/python3 $SNAP/bin/snapcraft "$@"
20 changes: 20 additions & 0 deletions docker/candidate.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM ubuntu:xenial

RUN apt-get update && \
apt-get dist-upgrade --yes && \
apt-get install --yes \
curl sudo jq squashfs-tools && \
curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/core' | jq '.download_url' -r) --output core.snap && \
mkdir -p /snap/core && unsquashfs -d /snap/core/current core.snap && rm core.snap && \
curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/snapcraft?channel=candidate' | jq '.download_url' -r) --output snapcraft.snap && \
mkdir -p /snap/snapcraft && unsquashfs -d /snap/snapcraft/current snapcraft.snap && rm snapcraft.snap && \
apt remove --yes --purge curl jq squashfs-tools && \
apt-get autoclean --yes && \
apt-get clean --yes

COPY bin/snapcraft-wrapper /snap/bin/snapcraft


ENV SNAP=/snap/snapcraft/current
ENV SNAP_NAME=snapcraft
ENV PATH=/snap/bin:$PATH
9 changes: 2 additions & 7 deletions docker/snap-edge.Dockerfile → docker/edge.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,13 @@ RUN apt-get update && \
mkdir -p /snap/core && unsquashfs -d /snap/core/current core.snap && rm core.snap && \
curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/snapcraft?channel=edge' | jq '.download_url' -r) --output snapcraft.snap && \
mkdir -p /snap/snapcraft && unsquashfs -d /snap/snapcraft/current snapcraft.snap && rm snapcraft.snap && \
mkdir -p /snap/bin && \
echo "#!/bin/sh" > /snap/bin/snapcraft && \
echo 'exec $SNAP/usr/bin/python3 $SNAP/bin/snapcraft "$@"' >> /snap/bin/snapcraft && \
chmod a+x /snap/bin/snapcraft && \
apt remove --yes --purge curl jq squashfs-tools && \
apt-get autoclean --yes && \
apt-get clean --yes

COPY bin/snapcraft-wrapper /snap/bin/snapcraft


ENV SNAP=/snap/snapcraft/current
ENV SNAP_NAME=snapcraft
ENV SNAP_VERSION=edge
ENV PATH=/snap/bin:$PATH
# Required by click.
ENV LC_ALL C.UTF-8
20 changes: 20 additions & 0 deletions docker/stable.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM ubuntu:xenial

RUN apt-get update && \
apt-get dist-upgrade --yes && \
apt-get install --yes \
curl sudo jq squashfs-tools && \
curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/core' | jq '.download_url' -r) --output core.snap && \
mkdir -p /snap/core && unsquashfs -d /snap/core/current core.snap && rm core.snap && \
curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/snapcraft?channel=stable' | jq '.download_url' -r) --output snapcraft.snap && \
mkdir -p /snap/snapcraft && unsquashfs -d /snap/snapcraft/current snapcraft.snap && rm snapcraft.snap && \
apt remove --yes --purge curl jq squashfs-tools && \
apt-get autoclean --yes && \
apt-get clean --yes

COPY bin/snapcraft-wrapper /snap/bin/snapcraft


ENV SNAP=/snap/snapcraft/current
ENV SNAP_NAME=snapcraft
ENV PATH=/snap/bin:$PATH

0 comments on commit 512c544

Please sign in to comment.