First draft of a template for spring boot applications in java
This commit is contained in:
		| @@ -1,56 +1,20 @@ | ||||
| #################################################################################################### | ||||
| ## Builder | ||||
| #################################################################################################### | ||||
| FROM rust:1-alpine3.19 | ||||
| # This is important, see https://github.com/rust-lang/docker-rust/issues/85 | ||||
| ENV RUSTFLAGS="-C target-feature=-crt-static" | ||||
|  | ||||
| RUN apk add --no-cache musl-dev | ||||
| FROM gradle:8.10.1-jdk21-alpine AS builder | ||||
|  | ||||
| WORKDIR /app | ||||
|  | ||||
| COPY ./ /app | ||||
|  | ||||
| RUN cargo build --release | ||||
| RUN strip target/release/small-rust | ||||
| RUN ./gradlew clean bootJar | ||||
|  | ||||
| #################################################################################################### | ||||
| ## Final image | ||||
| #################################################################################################### | ||||
| FROM alpine:3.19 | ||||
| FROM eclipse-temurin:21-jdk-alpine | ||||
|  | ||||
| RUN apk add --no-cache libgcc | ||||
| COPY --from=builder /app/build/libs/spring-boot-app.jar . | ||||
|  | ||||
| COPY --from=0 /app/target/release/small-rust . | ||||
| CMD ["java", "-jar", "spring-boot-app.jar"] | ||||
|  | ||||
| ENTRYPOINT ["/small-rust"] | ||||
|  | ||||
|  | ||||
| #################################################################################################### | ||||
| ## Alternatively use this builder | ||||
| #################################################################################################### | ||||
| #FROM rust:latest AS builder | ||||
| # | ||||
| #RUN rustup target add x86_64-unknown-linux-musl | ||||
| #RUN apt update && apt install -y musl-tools musl-dev | ||||
| #RUN update-ca-certificates | ||||
| # | ||||
| ## Create appuser | ||||
| #ENV USER=small-rust | ||||
| #ENV UID=10001 | ||||
| # | ||||
| #RUN adduser \ | ||||
| #    --disabled-password \ | ||||
| #    --gecos "" \ | ||||
| #    --home "/nonexistent" \ | ||||
| #    --shell "/sbin/nologin" \ | ||||
| #    --no-create-home \ | ||||
| #    --uid "${UID}" \ | ||||
| #    "${USER}" | ||||
| # | ||||
| # | ||||
| #WORKDIR /app | ||||
| # | ||||
| #COPY ./ . | ||||
| # | ||||
| #RUN cargo build --target x86_64-unknown-linux-musl --release | ||||
|   | ||||
		Reference in New Issue
	
	Block a user