chore(tooling): add a Dockerfile along with some makefile container targets
This commit is contained in:
parent
7ef03c6f55
commit
7ac6c9c407
2 changed files with 45 additions and 2 deletions
21
Dockerfile
Normal file
21
Dockerfile
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
##### Build ####################################################################
|
||||||
|
FROM docker.io/library/golang:1.23-alpine
|
||||||
|
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
RUN go mod download && go mod verify
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
RUN CGO_ENABLED=0 go build ./...
|
||||||
|
|
||||||
|
##### Run ######################################################################
|
||||||
|
FROM alpine:3.20
|
||||||
|
|
||||||
|
ENV LANG en_US.utf8
|
||||||
|
|
||||||
|
RUN apk upgrade --no-cache
|
||||||
|
|
||||||
|
COPY --from=0 /usr/src/app/ods /usr/local/bin/
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/ods"]
|
26
GNUmakefile
26
GNUmakefile
|
@ -41,16 +41,38 @@ tidy: ## tidy up the code
|
||||||
build: ## build the code
|
build: ## build the code
|
||||||
CGO_ENABLED=0 go build -o $(OUTDIR)/ods ./
|
CGO_ENABLED=0 go build -o $(OUTDIR)/ods ./
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean: ## clean the code
|
||||||
|
rm -f $(OUTDIR)/ods
|
||||||
|
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
run: ## run the code
|
run: ## run the code
|
||||||
go run ./
|
go run ./
|
||||||
|
|
||||||
|
##### Containers ###############################################################
|
||||||
|
.PHONY: container-build
|
||||||
|
container-build: ## build the container image
|
||||||
|
podman build \
|
||||||
|
-t $(CONTAINER_REGISTRY)/ods:$(CONTAINER_TAG) \
|
||||||
|
.
|
||||||
|
|
||||||
|
.PHONY: container-push
|
||||||
|
container-push: ## push the container image to the container registry
|
||||||
|
podman push \
|
||||||
|
$(CONTAINER_REGISTRY)/ods:$(CONTAINER_TAG)
|
||||||
|
|
||||||
|
.PHONY: container-run
|
||||||
|
container-run: ## run the code inside podman
|
||||||
|
podman run --rm -ti \
|
||||||
|
-p 8090:8090 \
|
||||||
|
$(CONTAINER_REGISTRY)/ods:$(CONTAINER_TAG)
|
||||||
|
|
||||||
##### Operations ###############################################################
|
##### Operations ###############################################################
|
||||||
.PHONY: push
|
.PHONY: push
|
||||||
push: tidy no-dirty check ## push changes to git remote
|
push: tidy no-dirty check ## push changes to git remote
|
||||||
git push git master
|
git push git master
|
||||||
|
|
||||||
.PHONY: deploy
|
.PHONY: deploy
|
||||||
deploy: check build ## deploy changes to the production server
|
deploy: ## deploy changes to the production server
|
||||||
rsync -a --delete $(OUTDIR)/ods root@ods.adyxax.org:/srv/ods/
|
rsync $(OUTDIR)/ods root@ods.adyxax.org:/srv/ods/
|
||||||
ssh root@ods.adyxax.org "systemctl restart ods"
|
ssh root@ods.adyxax.org "systemctl restart ods"
|
||||||
|
|
Loading…
Add table
Reference in a new issue