diff options
Diffstat (limited to 'taskcluster/docker/snap-coreXX-build/Dockerfile')
-rw-r--r-- | taskcluster/docker/snap-coreXX-build/Dockerfile | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/taskcluster/docker/snap-coreXX-build/Dockerfile b/taskcluster/docker/snap-coreXX-build/Dockerfile new file mode 100644 index 0000000000..29a343f6ea --- /dev/null +++ b/taskcluster/docker/snap-coreXX-build/Dockerfile @@ -0,0 +1,80 @@ +FROM $DOCKER_IMAGE_PARENT +MAINTAINER Gabriele Svelto <gsvelto@mozilla.com> + +RUN mkdir -p /builds +RUN id worker || useradd -d /builds/worker -s /bin/bash -m worker +WORKDIR /builds/worker + +# We need to declare all potentially cache volumes as caches. Also, +# making high I/O paths volumes increase I/O throughput because of +# AUFS slowness. +VOLUME /builds/worker/checkouts + +RUN apt-get update && \ + apt-get install -y \ + build-essential \ + curl \ + libavcodec58 \ + libavutil56 \ + jq \ + patch \ + patchelf \ + python3-dev \ + python3-yaml \ + squashfs-tools \ + tar \ + unzip \ + uuid \ + wget \ + zip + +ARG SNAP_BASE + +COPY install-snap.sh /usr/local/bin/ + +RUN install-snap.sh core + +RUN install-snap.sh core20 + +# Snapcraft snap depends on core20 for python3.8 even when we target core22 +RUN install-snap.sh snapcraft + +RUN install-snap.sh core22 + +ARG SNAP_LIST + +RUN for snap in $SNAP_LIST; do install-snap.sh "${snap}"; done + +# Create a snapcraft runner +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\"\nexport PATH=\$SNAP/bin/:\$SNAP/libexec/snapcraft/:\$PATH" >> /snap/bin/snapcraft +RUN echo 'exec "$SNAP/bin/snapcraft" "$@"' >> /snap/bin/snapcraft +RUN chmod +x /snap/bin/snapcraft + +# Generate locale +RUN apt update && apt dist-upgrade --yes && apt install --yes sudo snapd locales && locale-gen en_US.UTF-8 && apt-get autoremove -y + +# 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" + +# Snapcraft pull will need to sudo apt-get update ... +RUN echo "worker ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/worker && \ + chmod 0440 /etc/sudoers.d/worker + +COPY run.sh /builds/worker/run.sh + +COPY parse.py /builds/worker/parse.py + +COPY patches /builds/worker/patches/ + +RUN chown -R worker:worker /builds/worker + +# Set a default command useful for debugging +CMD ["/bin/bash", "--login"] |