35 lines
1.1 KiB
Docker
35 lines
1.1 KiB
Docker
FROM ubuntu:22.04
|
|
|
|
# Set environment variables
|
|
ENV FLUTTER_HOME=/opt/flutter
|
|
ENV PATH="$FLUTTER_HOME/bin:$PATH"
|
|
ENV PUB_CACHE=/opt/pub-cache
|
|
|
|
# Install system dependencies including Node.js
|
|
# Nodejs is required for the forgejo runner (checkout action)
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
git \
|
|
wget \
|
|
unzip \
|
|
ca-certificates \
|
|
gnupg \
|
|
&& mkdir -p /etc/apt/keyrings \
|
|
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
|
|
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
|
|
&& apt-get update \
|
|
&& apt-get install -y nodejs \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Flutter
|
|
RUN git clone https://github.com/flutter/flutter.git $FLUTTER_HOME \
|
|
&& flutter doctor \
|
|
&& flutter channel stable \
|
|
&& flutter upgrade \
|
|
&& flutter config --enable-web \
|
|
&& flutter precache --web
|
|
|
|
# Create cache directories
|
|
RUN mkdir -p $PUB_CACHE
|
|
|
|
WORKDIR /workspace
|