there is no dependencies directory before prepare-production build step Signed-off-by: GanjMonk <solov333@gmail.com>
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Docker
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Docker
		
	
	
		
			Executable file
		
	
	
	
	
| # syntax=docker/dockerfile:1.4
 | |
| 
 | |
| FROM --platform=$BUILDPLATFORM maven:3.8.5-eclipse-temurin-17 AS builder
 | |
| WORKDIR /workdir/server
 | |
| COPY pom.xml /workdir/server/pom.xml
 | |
| RUN mvn dependency:go-offline
 | |
| 
 | |
| COPY src /workdir/server/src
 | |
| RUN mvn install
 | |
| 
 | |
| FROM builder AS dev-envs
 | |
| RUN <<EOF
 | |
| apt-get update
 | |
| apt-get install -y --no-install-recommends git
 | |
| EOF
 | |
| 
 | |
| RUN <<EOF
 | |
| useradd -s /bin/bash -m vscode
 | |
| groupadd docker
 | |
| usermod -aG docker vscode
 | |
| EOF
 | |
| # install Docker tools (cli, buildx, compose)
 | |
| COPY --from=gloursdocker/docker / /
 | |
| CMD ["mvn", "spring-boot:run"]
 | |
| 
 | |
| FROM builder as prepare-production
 | |
| RUN mkdir -p target/dependency
 | |
| WORKDIR /workdir/server/target/dependency
 | |
| RUN jar -xf ../*.jar
 | |
| 
 | |
| FROM eclipse-temurin:17-jre-focal
 | |
| 
 | |
| EXPOSE 8080
 | |
| VOLUME /tmp
 | |
| ARG DEPENDENCY=/workdir/server/target/dependency
 | |
| COPY --from=prepare-production ${DEPENDENCY}/BOOT-INF/lib /app/lib
 | |
| COPY --from=prepare-production ${DEPENDENCY}/META-INF /app/META-INF
 | |
| COPY --from=prepare-production ${DEPENDENCY}/BOOT-INF/classes /app
 | |
| ENTRYPOINT ["java","-cp","app:app/lib/*","com.company.project.Application"]
 |