Created
January 14, 2020 10:40
-
-
Save xoriole/9f5a3db0df9eb60a8ee35a297cf4e559 to your computer and use it in GitHub Desktop.
Snapcraft docker - Core18
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu:bionic as builder | |
# Grab dependencies | |
RUN apt-get update | |
RUN apt-get dist-upgrade --yes | |
RUN apt-get install --yes \ | |
curl \ | |
jq \ | |
squashfs-tools | |
# Grab the core snap from the stable channel and unpack it in the proper place | |
RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/core' | jq '.download_url' -r) --output core.snap | |
RUN mkdir -p /snap/core | |
RUN unsquashfs -d /snap/core/current core.snap | |
# Grab the snapcraft snap from the stable channel and unpack it in the proper place | |
RUN 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 | |
RUN mkdir -p /snap/snapcraft | |
RUN unsquashfs -d /snap/snapcraft/current snapcraft.snap | |
# Create a snapcraft runner (TODO: move version detection to the core of snapcraft) | |
RUN mkdir -p /snap/bin | |
RUN echo "#!/bin/sh" > /snap/bin/snapcraft | |
RUN snap_version="$(awk '/^version:/{print $2}' /snap/snapcraft/current/meta/snap.yaml)" && echo "export SNAP_VERSION=\"$snap_version\"" >> /snap/bin/snapcraft | |
RUN echo 'exec "$SNAP/usr/bin/python3" "$SNAP/bin/snapcraft" "$@"' >> /snap/bin/snapcraft | |
RUN chmod +x /snap/bin/snapcraft | |
# Multi-stage build, only need the snaps from the builder. Copy them one at a | |
# time so they can be cached. | |
FROM ubuntu:bionic | |
COPY --from=builder /snap/core /snap/core | |
COPY --from=builder /snap/snapcraft /snap/snapcraft | |
COPY --from=builder /snap/bin/snapcraft /snap/bin/snapcraft | |
# Generate locale | |
RUN apt-get update && apt-get dist-upgrade --yes && apt-get install --yes sudo locales && locale-gen en_US.UTF-8 | |
# Set the proper environment | |
ENV LANG="en_US.UTF-8" | |
ENV LANGUAGE="en_US:en" | |
ENV LC_ALL="en_US.UTF-8" | |
ENV PATH="/snap/bin:$PATH" | |
ENV SNAP="/snap/snapcraft/current" | |
ENV SNAP_NAME="snapcraft" | |
ENV SNAP_ARCH="amd64" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment