From a88701acf10cd78f9c1bcbabf0756e7ac1033ea1 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 24 Dec 2024 16:28:10 -0500 Subject: [PATCH] Clean up --- .dockerignore | 6 ++++++ Dockerfile | 31 +++++++++++++++++++++++++++++++ README.md | 2 +- entrypoint.sh | 21 +++++++++++++++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 entrypoint.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..83efe8c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.gitignore +.dockerignore +newt +*.json +README.md +Makefile \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index e69de29..a324d65 100644 --- a/Dockerfile +++ b/Dockerfile @@ -0,0 +1,31 @@ +FROM golang:1.21.5-alpine AS builder + +# Set the working directory inside the container +WORKDIR /app + +# Copy go mod and sum files +COPY go.mod go.sum ./ + +# Download all dependencies +RUN go mod download + +# Copy the source code into the container +COPY . . + +# Build the application +RUN CGO_ENABLED=0 GOOS=linux go build -o /newt + +# Start a new stage from scratch +FROM ubuntu:22.04 AS runner + +# Copy the pre-built binary file from the previous stage and the entrypoint script +COPY --from=builder /newt /usr/local/bin/ +COPY entrypoint.sh / + +RUN chmod +x /entrypoint.sh + +# Copy the entrypoint script +ENTRYPOINT ["/entrypoint.sh"] + +# Command to run the executable +CMD ["newt"] \ No newline at end of file diff --git a/README.md b/README.md index becce6e..8a3df68 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# newt +# Newt diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..497d640 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# Sample from https://github.com/traefik/traefik-library-image/blob/5070edb25b03cca6802d75d5037576c840f73fdd/v3.1/alpine/entrypoint.sh + +set -e + +# first arg is `-f` or `--some-option` +if [ "${1#-}" != "$1" ]; then + set -- newt "$@" +fi + +# if our command is a valid newt subcommand, let's invoke it through newt instead +# (this allows for "docker run newt version", etc) +if newt "$1" --help >/dev/null 2>&1 +then + set -- newt "$@" +else + echo "= '$1' is not a newt command: assuming shell execution." 1>&2 +fi + +exec "$@" \ No newline at end of file