Compare commits
No commits in common. "main" and "v0.1" have entirely different histories.
39
Dockerfile
39
Dockerfile
@ -1,31 +1,19 @@
|
||||
FROM docker.io/debian:12-slim AS build
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
FROM docker.io/debian:12-slim as build
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
curl \
|
||||
sdkmanager \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
# https://docs.flutter.dev/release/archive
|
||||
RUN curl https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.3-stable.tar.xz \
|
||||
| tar --no-same-owner -C /opt/ -xJ
|
||||
# https://developer.android.com/tools/releases/build-tools
|
||||
ADD https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.4-stable.tar.xz /flutter.tar.xz
|
||||
RUN tar -C /opt/ --exclude=cache -xJf /flutter.tar.xz
|
||||
RUN sdkmanager \
|
||||
"build-tools;33.0.1" \
|
||||
"build-tools;34.0.0" \
|
||||
"build-tools;35.0.0" \
|
||||
"cmdline-tools;9.0" \
|
||||
"platform-tools" \
|
||||
"platforms;android-33" \
|
||||
"platforms;android-34" \
|
||||
"platform-tools;35.0.2" \
|
||||
"platforms;android-35"
|
||||
# https://gradle.org/releases/
|
||||
RUN curl -Lo /gradle.zip \
|
||||
'https://services.gradle.org/distributions/gradle-8.12.1-bin.zip'
|
||||
|
||||
FROM docker.io/debian:12-slim
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN touch /.dockerenv
|
||||
RUN useradd -m app
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
curl \
|
||||
@ -33,14 +21,9 @@ RUN apt-get update \
|
||||
openjdk-17-jdk-headless \
|
||||
unzip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=build /opt/ /opt/
|
||||
ENV GRADLE_ZIP=/gradle.zip
|
||||
COPY --from=build /gradle.zip "$GRADLE_ZIP"
|
||||
COPY --from=build --chown=app:app /opt/ /opt/
|
||||
USER app
|
||||
ENV PATH="/opt/flutter/bin:$PATH"
|
||||
RUN flutter config --android-sdk /opt/android-sdk/
|
||||
RUN flutter precache --android
|
||||
RUN yes | flutter doctor --android-licenses
|
||||
COPY entrypoint.sh /usr/local/bin/
|
||||
WORKDIR /app/
|
||||
ENTRYPOINT ["entrypoint.sh"]
|
||||
CMD ["build", "apk"]
|
||||
RUN flutter config --android-sdk /opt/android-sdk/ \
|
||||
&& yes | flutter doctor --android-licenses > /dev/null
|
||||
ENTRYPOINT ["flutter"]
|
||||
|
21
README.md
21
README.md
@ -1,21 +0,0 @@
|
||||
# docker-flutter
|
||||
|
||||
## Action
|
||||
```yaml
|
||||
- uses: icing/flutter@main
|
||||
```
|
||||
|
||||
## Docker image
|
||||
### Examples
|
||||
- Run
|
||||
```bash
|
||||
docker volume create --ignore fluttercache
|
||||
docker run --rm --network host -v "$PWD:/app/" -v "fluttercache:/home/gradle/.gradle/" git.gmoker.com/icing/flutter:main run
|
||||
```
|
||||
|
||||
- Build
|
||||
```bash
|
||||
docker volume create --ignore fluttercache
|
||||
docker run --rm -v "$PWD:/app/" -v "fluttercache:/home/gradle/.gradle/" git.gmoker.com/icing/flutter:main build apk
|
||||
```
|
||||
The apk will be found at `build/app/outputs/flutter-apk/app-release.apk`.
|
@ -1,3 +0,0 @@
|
||||
runs:
|
||||
using: docker
|
||||
image: git.gmoker.com/icing/flutter:main
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
PROPS=android/gradle/wrapper/gradle-wrapper.properties
|
||||
BAK=/bak
|
||||
|
||||
cp "$PROPS" "$BAK" || exit 1
|
||||
# shellcheck disable=SC2064
|
||||
trap "cp '$BAK' '$PROPS'" EXIT
|
||||
|
||||
sed -i "/^distributionUrl/s =.\+ =file\\://$GRADLE_ZIP " "$PROPS"
|
||||
|
||||
flutter --no-version-check "$@"
|
Loading…
Reference in New Issue
Block a user