Skip to content
Snippets Groups Projects
Commit 6e5b3595 authored by Andri Joos's avatar Andri Joos :blush:
Browse files

add multi platform image

parent 39b898ec
No related branches found
No related tags found
No related merge requests found
......@@ -16,7 +16,6 @@ include:
"3.24.5":
extends: .build_flutter_base
variables:
DOCKER_BUILDX_PLATFORMS: linux/amd64
IMAGE_BASENAME: ${IMAGE_PREFIX}/flutter
VERSION: 3.24.5
IMAGE_NAME: ${IMAGE_BASENAME}:${VERSION},${IMAGE_BASENAME}:3.24,${IMAGE_BASENAME}:3
......@@ -13,6 +13,19 @@
".",
],
},
{
"label": "buildx build",
"command": "docker",
"args": [
"buildx",
"build",
"--build-arg",
"FLUTTER_VERSION=${input:flutterVersion}",
"--platform",
"linux/arm64,linux/amd64",
".",
],
},
],
"inputs": [
{
......
......@@ -13,11 +13,32 @@ ARG FLUTTER_DIR="$DEPENDENCY_DIR/${FLUTTER_DIR}"
ARG FLUTTER_DOWNLOAD_FILE="flutter.tar.xz"
RUN apt update \
&& apt install -y wget xz-utils
&& apt install -y wget xz-utils git unzip
RUN mkdir -p ${FLUTTER_DIR} \
&& wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz -O ${FLUTTER_DOWNLOAD_FILE} \
&& tar -xf ${FLUTTER_DOWNLOAD_FILE} --strip-components=1 --directory $FLUTTER_DIR
RUN mkdir -p ${FLUTTER_DIR}
RUN if [ "$(uname -m)" = "x86_64" ]; then \
wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz -O ${FLUTTER_DOWNLOAD_FILE} \
&& tar -xf ${FLUTTER_DOWNLOAD_FILE} --strip-components=1 --directory $FLUTTER_DIR; \
fi
# There is no official flutter arm64 release, so we must use the github repo
# Flutter on arch currently has warnings because channel and repository source are not set
RUN if [ "$(uname -m)" = "aarch64" ]; then \
git clone --depth 1 https://github.com/flutter/flutter.git ${FLUTTER_DIR} \
&& cd ${FLUTTER_DIR} \
&& git fetch origin tag ${FLUTTER_VERSION} \
&& git checkout tags/${FLUTTER_VERSION} \
&& DART_SDK_PATH="${FLUTTER_DIR}/bin/cache/dart-sdk" \
&& ENGINE_REALM=$(cat "${FLUTTER_DIR}/bin/internal/engine.realm" | tr -d '[:space:]') \
&& ENGINE_VERSION=$(cat "${FLUTTER_DIR}/bin/internal/engine.version") \
&& DART_ZIP_NAME="dart-sdk-linux-arm64.zip" \
&& wget "https://storage.googleapis.com/flutter_infra_release/flutter/${ENGINE_VERSION}/${DART_ZIP_NAME}" -O ${DART_ZIP_NAME} \
&& unzip -o -q "${DART_ZIP_NAME}" -d "${FLUTTER_DIR}/bin/cache" \
&& /usr/bin/find "${DART_SDK_PATH}" -type d -exec chmod 755 {} \; \
&& /usr/bin/find "${DART_SDK_PATH}" -type f -perm /u+x -exec chmod a+x,a+r {} \; \
&& echo "${ENGINE_VERSION}" > "${FLUTTER_DIR}/bin/cache/engine-dart-sdk.stamp"; \
fi
FROM alpine:3.20.3
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment