mirror of https://github.com/fmartingr/bazaar.git
added containerfile
This commit is contained in:
parent
141721f08e
commit
5dd2bfb3f9
|
@ -0,0 +1,25 @@
|
|||
# Build stage
|
||||
ARG GOLANG_VERSION
|
||||
ARG ALPINE_VERSION
|
||||
|
||||
FROM docker.io/library/golang:${GOLANG_VERSION}-alpine${ALPINE_VERSION} AS builder
|
||||
WORKDIR /src
|
||||
COPY . .
|
||||
RUN apk add --no-cache ca-certificates tzdata make && \
|
||||
make build
|
||||
|
||||
# Server image
|
||||
FROM scratch
|
||||
|
||||
ENV PORT 8080
|
||||
LABEL org.opencontainers.image.source="https://github.com/fmartingr/bazaar"
|
||||
LABEL maintainer="Felipe Martin <github@fmartingr.com>"
|
||||
|
||||
COPY --from=builder /src/build/bazaar /usr/bin/
|
||||
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
|
||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||
# RUN addgroup -g 1000 bazaar \
|
||||
# && adduser -D -h /bazaar -g '' -G bazaar -u 1000 bazaar
|
||||
# USER bazaar
|
||||
EXPOSE ${PORT}
|
||||
ENTRYPOINT ["/usr/bin/bazaar"]
|
31
Makefile
31
Makefile
|
@ -1,23 +1,47 @@
|
|||
PROJECT := bazaar
|
||||
PROJECT_NAME := bazaar
|
||||
|
||||
GOLANG_VERSION=1.19
|
||||
|
||||
VERSION_COMMIT := $git rev-parse --short HEAD)
|
||||
SOURCE_FILES ?=./internal/... ./cmd/... ./pkg/...
|
||||
|
||||
TEST_OPTIONS ?= -v -failfast -race -bench=. -benchtime=100000x -cover -coverprofile=coverage.out
|
||||
TEST_TIMEOUT ?=1m
|
||||
|
||||
CLEAN_OPTIONS ?=-modcache -testcache
|
||||
|
||||
LD_FLAGS := -X main.version=$(VERSION) -s -w
|
||||
CGO_ENABLED := 0
|
||||
|
||||
BUILDS_PATH := ./build
|
||||
FROM_MAKEFILE := y
|
||||
|
||||
CONTAINER_RUNTIME := podman
|
||||
CONTAINERFILE_NAME := Containerfile
|
||||
CONTAINER_GOLANG_VERSION := ${GOLANG_VERSION}
|
||||
CONTAINER_ALPINE_VERSION := 3.16
|
||||
CONTAINER_IMAGE_NAME := fmartingr/${PROJECT_NAME}
|
||||
CONTAINER_IMAGE_TAG := dev
|
||||
|
||||
# Common exports
|
||||
export FROM_MAKEFILE
|
||||
export VERSION_COMMIT
|
||||
|
||||
export LD_FLAGS
|
||||
export CGO_ENABLED
|
||||
|
||||
export SOURCE_FILES
|
||||
export TEST_OPTIONS
|
||||
export TEST_TIMEOUT
|
||||
export BUILDS_PATH
|
||||
|
||||
export CONTAINER_RUNTIME
|
||||
export CONTAINERFILE_NAME
|
||||
export CONTAINER_GOLANG_VERSION
|
||||
export CONTAINER_ALPINE_VERSION
|
||||
export CONTAINER_IMAGE_NAME
|
||||
export CONTAINER_IMAGE_TAG
|
||||
|
||||
.PHONY: all
|
||||
all: help
|
||||
|
||||
|
@ -46,6 +70,11 @@ build: clean ### builds the project for the setup os/arch combinations
|
|||
@go build -a -v -ldflags "${LD_FLAGS}" -o ${BUILDS_PATH}/bazaar ./cmd/bazaar/*.go
|
||||
@chmod +x ${BUILDS_PATH}/bazaar
|
||||
|
||||
.PHONY: build-container-image
|
||||
build-container:
|
||||
$(info: Make: Container image)
|
||||
@bash scripts/build-container-image.sh
|
||||
|
||||
.PHONY: quick-run
|
||||
quick-run: ### Executes the project using golang
|
||||
@go run ./cmd/bazaar/*.go
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if [ -z "$FROM_MAKEFILE" ]; then
|
||||
echo "Do not call this file directly - use the make command"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
${CONTAINER_RUNTIME} build --build-arg "GOLANG_VERSION=${CONTAINER_GOLANG_VERSION}" --build-arg="ALPINE_VERSION=${CONTAINER_ALPINE_VERSION}" -t ${CONTAINER_IMAGE_NAME}:${CONTAINER_IMAGE_TAG} -f ${CONTAINERFILE_NAME} .
|
Loading…
Reference in New Issue