1
1
ARG RISK = stable
2
- ARG UBUNTU = jammy
2
+ ARG UBUNTU = noble
3
3
4
- FROM ubuntu :$UBUNTU as builder
4
+ FROM ubuntu :$UBUNTU AS builder
5
5
ARG RISK
6
6
ARG UBUNTU
7
7
RUN echo " Building snapcraft:$RISK in ubuntu:$UBUNTU"
@@ -10,15 +10,15 @@ RUN echo "Building snapcraft:$RISK in ubuntu:$UBUNTU"
10
10
RUN apt - get update
11
11
RUN apt - get dist - upgrade -- yes
12
12
RUN apt - get install -- yes \
13
- curl \
14
- jq \
15
- squashfs - tools
13
+ curl \
14
+ jq \
15
+ squashfs - tools
16
16
17
- # Grab the core22 snap (which snapcraft uses as a base ) from the stable channel
17
+ # Grab the core24 snap (which snapcraft uses as a base ) from the stable channel
18
18
# and unpack it in the proper place .
19
- RUN curl - L $ (curl - H ' X-Ubuntu-Series: 16' ' https://api.snapcraft.io/api/v1/snaps/details/core22 ' | jq ' .download_url' - r ) -- output core22 .snap
20
- RUN mkdir - p / snap / core22
21
- RUN unsquashfs - d / snap / core22 / current core22 .snap
19
+ RUN curl - L $ (curl - H ' X-Ubuntu-Series: 16' ' https://api.snapcraft.io/api/v1/snaps/details/core24 ' | jq ' .download_url' - r ) -- output core24 .snap
20
+ RUN mkdir - p / snap / core24
21
+ RUN unsquashfs - d / snap / core24 / current core24 .snap
22
22
23
23
# Grab the snapcraft snap from the $RISK channel and unpack it in the proper
24
24
# place .
@@ -30,14 +30,18 @@ RUN unsquashfs -d /snap/snapcraft/current snapcraft.snap
30
30
# the snapcraft snap :
31
31
RUN unlink / snap / snapcraft / current / usr / bin / python3
32
32
RUN ln - s / snap / snapcraft / current / usr / bin / python3 .* / snap / snapcraft / current / usr / bin / python3
33
+ RUN mkdir - p / snap / snapcraft / current / usr / lib / python3 / dist - packages
33
34
RUN echo / snap / snapcraft / current / lib / python3 .*/ site - packages >> / snap / snapcraft / current / usr / lib / python3 / dist - packages / site - packages .pth
35
+ RUN site_pkgs = $ (echo / snap / snapcraft / current / lib / python3 .*/ site - packages ) && \
36
+ ln - s / snap / snapcraft / current / share / snapcraft / extensions $site_pkgs / extensions && \
37
+ ln - s / snap / snapcraft / current / share / snapcraft / keyrings $site_pkgs / keyrings && \
38
+ ln - s / snap / snapcraft / current / share / snapcraft / schema $site_pkgs / schema
34
39
35
- # Create a snapcraft runner (TODO : move version detection to the core of
36
- # snapcraft ).
40
+ # Create a snapcraft runner
37
41
RUN mkdir - p / snap / bin
38
42
RUN echo " #!/bin/sh" > / snap / bin / snapcraft
39
43
RUN snap_version = " $(awk '/^version:/{print $2}' /snap/snapcraft/current/meta/snap.yaml | tr -d \' )" && echo " export SNAP_VERSION=\" $snap_version\" " >> / snap / bin / snapcraft
40
- RUN echo ' exec "$SNAP/usr/ bin/python3" "$SNAP/bin/ snapcraft" "$@"' >> / snap / bin / snapcraft
44
+ RUN echo ' exec "/snap/snapcraft/current/ bin/python3" -m snapcraft "$@"' >> / snap / bin / snapcraft
41
45
RUN chmod + x / snap / bin / snapcraft
42
46
43
47
# Workaround for old buggy version of patchelf
@@ -72,7 +76,7 @@ RUN echo 'Patcher._old_run_patchelf = Patcher._run_patchelf' >> /opt/patchelf/_p
72
76
# Multi - stage build , only need the snaps from the builder . Copy them one at a
73
77
# time so they can be cached .
74
78
FROM ubuntu :$UBUNTU
75
- COPY -- from = builder / snap / core22 / snap / core22
79
+ COPY -- from = builder / snap / core24 / snap / core24
76
80
COPY -- from = builder / snap / snapcraft / snap / snapcraft
77
81
COPY -- from = builder / snap / bin / snapcraft / snap / bin / snapcraft
78
82
COPY -- from = builder / opt / patchelf / bin / patchelf / snap / snapcraft / current / bin
@@ -85,7 +89,5 @@ RUN apt-get update && apt-get dist-upgrade --yes && apt-get install --yes snapd
85
89
ENV LANG = " en_US.UTF-8"
86
90
ENV LANGUAGE = " en_US:en"
87
91
ENV LC_ALL = " en_US.UTF-8"
88
- ENV PATH = " /snap/bin:/snap/snapcraft/current/usr/bin:$PATH"
89
- ENV SNAP = " /snap/snapcraft/current"
90
- ENV SNAP_NAME = " snapcraft"
91
- ENV SNAP_ARCH = " amd64"
92
+ ENV PATH = " /snap/snapcraft/current/libexec/snapcraft/:/snap/bin:$PATH"
93
+ ENV SNAPCRAFT_BUILD_ENVIRONMENT = host
0 commit comments