Add dockerfile
This commit is contained in:
28
Dockerfile.webui
Normal file
28
Dockerfile.webui
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Define argument for linker flags
|
||||||
|
ARG LDFLAGS=-s -w
|
||||||
|
|
||||||
|
# Use a temporary build image based on Golang 1.20-alpine
|
||||||
|
FROM golang:1.22-alpine as builder
|
||||||
|
|
||||||
|
# Set environment variables: linker flags and disable CGO
|
||||||
|
ENV LDFLAGS=$LDFLAGS CGO_ENABLED=0
|
||||||
|
|
||||||
|
# Install git and build the edgevpn binary with the provided linker flags
|
||||||
|
# --no-cache flag ensures the package cache isn't stored in the layer, reducing image size
|
||||||
|
RUN apk add --no-cache git
|
||||||
|
|
||||||
|
# Add the current directory contents to the work directory in the container
|
||||||
|
COPY . /work
|
||||||
|
|
||||||
|
# Set the current work directory inside the container
|
||||||
|
WORKDIR /work
|
||||||
|
|
||||||
|
RUN go build -ldflags="$LDFLAGS" -o webui ./example/webui
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
# Copy the webui binary from the builder stage to the final image
|
||||||
|
COPY --from=builder /work/webui /webui
|
||||||
|
|
||||||
|
# Define the command that will be run when the container is started
|
||||||
|
ENTRYPOINT ["/webui"]
|
||||||
6
Makefile
6
Makefile
@@ -1,7 +1,11 @@
|
|||||||
GOCMD=go
|
GOCMD=go
|
||||||
|
IMAGE_NAME=webui
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
$(GOCMD) run github.com/onsi/ginkgo/v2/ginkgo --fail-fast -v -r ./...
|
$(GOCMD) run github.com/onsi/ginkgo/v2/ginkgo --fail-fast -v -r ./...
|
||||||
|
|
||||||
webui:
|
webui:
|
||||||
cd example/webui && $(GOCMD) run ./
|
cd example/webui && $(GOCMD) run ./
|
||||||
|
|
||||||
|
webui-image:
|
||||||
|
docker build -t $(IMAGE_NAME) -f Dockerfile.webui .
|
||||||
Reference in New Issue
Block a user