diff --git a/runtime/bun.go b/runtime/bun.go index 3366a85..388003b 100644 --- a/runtime/bun.go +++ b/runtime/bun.go @@ -138,7 +138,8 @@ func (d *Bun) GenerateDockerfile(path string) ([]byte, error) { var bunTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} -FROM oven/bun:${VERSION} AS base +ARG BUILDER=docker.io/oven/bun +FROM ${BUILDER}:${VERSION} AS base FROM base AS deps WORKDIR /app @@ -154,7 +155,7 @@ ENV NODE_ENV=production ARG BUILD_CMD={{.BuildCMD}} RUN if [ ! -z "${BUILD_CMD}" ]; then sh -c "$BUILD_CMD"; fi -FROM oven/bun:${VERSION}-slim AS runtime +FROM ${BUILDER}:${VERSION}-slim AS runtime WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certificates && apt-get clean && rm -f /var/lib/apt/lists/*_* diff --git a/runtime/deno.go b/runtime/deno.go index 95256fb..816884d 100644 --- a/runtime/deno.go +++ b/runtime/deno.go @@ -169,7 +169,8 @@ func (d *Deno) GenerateDockerfile(path string) ([]byte, error) { var denoTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} -FROM denoland/deno:${VERSION} as base +ARG BUILDER=docker.io/denoland/deno +FROM ${BUILDER}:${VERSION} as base FROM debian:stable-slim WORKDIR /app diff --git a/runtime/elixir.go b/runtime/elixir.go index 81ed2a0..90f3c31 100644 --- a/runtime/elixir.go +++ b/runtime/elixir.go @@ -82,7 +82,8 @@ func (d *Elixir) GenerateDockerfile(path string) ([]byte, error) { var elixirTemplate = strings.TrimSpace(` ARG VERSION={{.ElixirVersion}} ARG OTP_VERSION={{.OTPVersion}} -FROM elixir:${VERSION}-otp-${OTP_VERSION}-slim AS build +ARG BUILDER=docker.io/library/elixir +FROM ${BUILDER}:${VERSION}-otp-${OTP_VERSION}-slim AS build WORKDIR /app RUN apt-get update -y && apt-get install -y build-essential git \ && apt-get clean && rm -f /var/lib/apt/lists/*_* diff --git a/runtime/golang.go b/runtime/golang.go index 6fe38b6..b813571 100644 --- a/runtime/golang.go +++ b/runtime/golang.go @@ -97,7 +97,8 @@ func (d *Golang) GenerateDockerfile(path string) ([]byte, error) { var golangTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} ARG BUILDPLATFORM=linux/amd64 -FROM --platform=${BUILDPLATFORM} golang:${VERSION} AS base +ARG BUILDER=docker.io/library/golang +FROM --platform=${BUILDPLATFORM} ${BUILDER}:${VERSION} AS base FROM base AS deps WORKDIR /go/src/app diff --git a/runtime/java.go b/runtime/java.go index c762596..40f8b4b 100644 --- a/runtime/java.go +++ b/runtime/java.go @@ -178,7 +178,8 @@ CMD ${START_CMD} var javaGradleTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} ARG GRADLE_VERSION={{.GradleVersion}} -FROM gradle:${GRADLE_VERSION}-jdk${VERSION} AS build +ARG BUILDER=docker.io/library/gradle +FROM ${BUILDER}:${GRADLE_VERSION}-jdk${VERSION} AS build WORKDIR /app COPY build.gradle* gradlew* settings.gradle* ./ diff --git a/runtime/nextjs.go b/runtime/nextjs.go index ceaaa3a..ec5b3ff 100644 --- a/runtime/nextjs.go +++ b/runtime/nextjs.go @@ -103,7 +103,8 @@ func (d *NextJS) GenerateDockerfile(path string) ([]byte, error) { var nextJSStandaloneTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} -FROM node:${VERSION}-slim AS base +ARG BUILDER=docker.io/library/node +FROM ${BUILDER}:${VERSION}-slim AS base # Install dependencies only when needed FROM base AS deps @@ -172,7 +173,8 @@ CMD HOSTNAME="0.0.0.0" node server.js var nextJSServerTemplate = strings.TrimSpace(` ARG VERSION=lts -FROM node:${VERSION}-slim AS base +ARG BUILDER=docker.io/library/node +FROM ${BUILDER}:${VERSION}-slim AS base # Install dependencies only when needed FROM base AS deps diff --git a/runtime/node.go b/runtime/node.go index 44d0bc6..f04bddc 100644 --- a/runtime/node.go +++ b/runtime/node.go @@ -166,7 +166,8 @@ var startScriptRe = regexp.MustCompile(`^.*?\b(ts-)?node(mon)?\b.*?(index|main|s var nodeTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} -FROM node:${VERSION}-slim AS base +ARG BUILDER=docker.io/library/node +FROM ${BUILDER}:${VERSION}-slim AS base RUN corepack enable FROM base AS deps diff --git a/runtime/php.go b/runtime/php.go index 8222501..ebffc8c 100644 --- a/runtime/php.go +++ b/runtime/php.go @@ -142,7 +142,8 @@ func (d *PHP) GenerateDockerfile(path string) ([]byte, error) { var phpTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} -FROM composer:lts as build +ARG BUILDER=docker.io/library/composer +FROM ${BUILDER}:lts as build RUN apk add --no-cache nodejs npm WORKDIR /app COPY . . diff --git a/runtime/python.go b/runtime/python.go index 5644120..2639b87 100644 --- a/runtime/python.go +++ b/runtime/python.go @@ -159,7 +159,8 @@ func (d *Python) GenerateDockerfile(path string) ([]byte, error) { var pythonTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} -FROM python:${VERSION}-slim +ARG BUILDER=docker.io/library/python +FROM ${BUILDER}:${VERSION}-slim WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certificates && apt-get clean && rm -f /var/lib/apt/lists/*_* RUN update-ca-certificates 2>/dev/null || true diff --git a/runtime/ruby.go b/runtime/ruby.go index 86b582a..90ef2b5 100644 --- a/runtime/ruby.go +++ b/runtime/ruby.go @@ -131,7 +131,8 @@ func (d *Ruby) GenerateDockerfile(path string) ([]byte, error) { var rubyTemplate = strings.TrimSpace(` ARG VERSION={{.Version}} -FROM ruby:${VERSION}-slim +ARG BUILDER=docker.io/library/ruby +FROM ${BUILDER}:${VERSION}-slim WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certificates && apt-get clean && rm -f /var/lib/apt/lists/*_* RUN update-ca-certificates 2>/dev/null || true diff --git a/runtime/rust.go b/runtime/rust.go index 8425264..d99e816 100644 --- a/runtime/rust.go +++ b/runtime/rust.go @@ -98,7 +98,8 @@ func (d *Rust) GenerateDockerfile(path string) ([]byte, error) { var rustlangTemplate = strings.TrimSpace(` ARG BUILDPLATFORM=linux -FROM --platform=${BUILDPLATFORM} messense/cargo-zigbuild:latest AS build +ARG BUILDER=docker.io/messense/cargo-zigbuild +FROM --platform=${BUILDPLATFORM} ${BUILDER}:latest AS build WORKDIR /app COPY . . diff --git a/runtime/static.go b/runtime/static.go index 7996436..77b21e9 100644 --- a/runtime/static.go +++ b/runtime/static.go @@ -67,7 +67,8 @@ func (d *Static) GenerateDockerfile(path string) ([]byte, error) { var staticTemplate = strings.TrimSpace(` ARG VERSION=2 -FROM joseluisq/static-web-server:${VERSION}-debian +ARG BUILDER=docker.io/joseluisq/static-web-server +FROM ${BUILDER}:${VERSION}-debian RUN apt-get update && apt-get install -y --no-install-recommends wget && apt-get clean && rm -f /var/lib/apt/lists/*_* COPY . .