55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# Environemnt to install flutter and build web
 | 
						|
FROM debian:latest AS build-env
 | 
						|
 | 
						|
# install all needed stuff
 | 
						|
RUN apt-get update
 | 
						|
RUN apt-get install -y curl git unzip
 | 
						|
 | 
						|
ARG WORKSPACE_HOST="https://localhost:49618"
 | 
						|
ARG WORKFLOW_HOST="https://localhost:49618"
 | 
						|
ARG SEARCH_HOST="https://localhost:49618"
 | 
						|
ARG ITEM_HOST="https://localhost:49618"
 | 
						|
 | 
						|
# define variables
 | 
						|
ARG FLUTTER_SDK=/usr/local/flutter
 | 
						|
ARG FLUTTER_VERSION=3.19.6
 | 
						|
ARG APP=/app/
 | 
						|
 | 
						|
#clone flutter
 | 
						|
RUN git clone https://github.com/flutter/flutter.git $FLUTTER_SDK
 | 
						|
# change dir to current flutter folder and make a checkout to the specific version
 | 
						|
RUN cd $FLUTTER_SDK && git fetch && git checkout $FLUTTER_VERSION
 | 
						|
 | 
						|
# setup the flutter path as an enviromental variable
 | 
						|
ENV PATH="$FLUTTER_SDK/bin:$FLUTTER_SDK/bin/cache/dart-sdk/bin:${PATH}"
 | 
						|
 | 
						|
# Start to run Flutter commands
 | 
						|
# doctor to see if all was installes ok
 | 
						|
RUN flutter doctor -v
 | 
						|
 | 
						|
# create folder to copy source code
 | 
						|
RUN mkdir $APP
 | 
						|
# copy source code to folder
 | 
						|
COPY . $APP
 | 
						|
# stup new folder as the working directory
 | 
						|
WORKDIR $APP
 | 
						|
 | 
						|
# Run build: 1 - clean, 2 - pub get, 3 - build web
 | 
						|
RUN flutter clean
 | 
						|
RUN flutter pub get
 | 
						|
RUN flutter build web \ 
 | 
						|
    --dart-define=WORKSPACE_HOST=$WORKSPACE_HOST \
 | 
						|
    --dart-define=WORKFLOW_HOST=$WORKFLOW_HOST \
 | 
						|
    --dart-define=SEARCH_HOST=$SEARCH_HOST \
 | 
						|
    --dart-define=ITEM_HOST=$ITEM_HOST 
 | 
						|
# once heare the app will be compiled and ready to deploy
 | 
						|
 | 
						|
# use nginx to deploy
 | 
						|
FROM nginx:1.25.2-alpine
 | 
						|
 | 
						|
# copy the info of the builded web app to nginx
 | 
						|
COPY --from=build-env /app/build/web /usr/share/nginx/html
 | 
						|
 | 
						|
# Expose and run nginx
 | 
						|
EXPOSE 80
 | 
						|
CMD ["nginx", "-g", "daemon off;"] |