40 lines
1.2 KiB
Docker
40 lines
1.2 KiB
Docker
FROM ubuntu:24.04
|
|
|
|
# Prevent interactive prompts during install
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install Base Tools (curl, wget, ssh, git, build-essential)
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
wget \
|
|
git \
|
|
openssh-client \
|
|
build-essential \
|
|
ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Node.js (using NodeSource for latest LTS) and pnpm
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
&& apt-get install -y nodejs \
|
|
&& npm install -g pnpm \
|
|
&& npm install -g tailwindcss @tailwindcss/cli
|
|
|
|
# Install Go 1.25.1
|
|
# Downloads the binary tarball and installs to /usr/local/go
|
|
RUN wget https://go.dev/dl/go1.25.1.linux-amd64.tar.gz \
|
|
&& tar -C /usr/local -xzf go1.25.1.linux-amd64.tar.gz \
|
|
&& rm go1.25.1.linux-amd64.tar.gz
|
|
|
|
# Set Go environment variables
|
|
ENV PATH="/usr/local/go/bin:${PATH}"
|
|
ENV GOPATH="/go"
|
|
ENV PATH="${GOPATH}/bin:${PATH}"
|
|
|
|
# Install Task (v3.46.4)
|
|
RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin v3.46.4
|
|
|
|
# Install Templ (v0.3.960)
|
|
RUN go install github.com/a-h/templ/cmd/templ@v0.3.960
|
|
|
|
# Verify installations (Optional, for debugging build)
|
|
RUN node -v && go version && task --version && templ --version
|