Docker compose
This commit is contained in:
3
machines/.dockerignore
Normal file
3
machines/.dockerignore
Normal file
@ -0,0 +1,3 @@
|
||||
**/build
|
||||
**/tmp
|
||||
**/.env*
|
||||
20
machines/Dockerfile
Normal file
20
machines/Dockerfile
Normal file
@ -0,0 +1,20 @@
|
||||
# stage 2: build golang backend
|
||||
FROM golang:1.21-alpine3.19 as go-builder
|
||||
|
||||
WORKDIR /go-builder
|
||||
COPY . .
|
||||
|
||||
RUN \
|
||||
go mod download && \
|
||||
go mod verify && \
|
||||
go build -v -ldflags "-s -w" -o machines-app ./app/main.go
|
||||
|
||||
|
||||
# stage 2: build final container
|
||||
FROM alpine:3.19
|
||||
|
||||
USER $USER
|
||||
WORKDIR /app
|
||||
COPY --from=go-builder /go-builder/machines-app /app
|
||||
|
||||
ENTRYPOINT ["/app/machines-app"]
|
||||
@ -2,13 +2,38 @@ EXEC=machines-app
|
||||
CONTAINER_NAME=machines-app
|
||||
IMAGE_NAME=komponiranje-machines-app
|
||||
|
||||
|
||||
run:
|
||||
@air
|
||||
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
@go build -ldflags "-s -w" -o ./build/${EXEC} ./app/.
|
||||
|
||||
|
||||
upgrade-packages:
|
||||
@go get -u ./...
|
||||
|
||||
|
||||
docker-build: clean
|
||||
@docker build \
|
||||
--progress=plain \
|
||||
--tag $(IMAGE_NAME) \
|
||||
.
|
||||
|
||||
|
||||
docker-run:
|
||||
@docker run \
|
||||
--name $(CONTAINER_NAME) \
|
||||
--publish 3000:3000 \
|
||||
--env CONTAINER_NAME="Awesome API server" \
|
||||
--env DBPORT=55432 \
|
||||
--detach \
|
||||
$(IMAGE_NAME)
|
||||
|
||||
|
||||
clean:
|
||||
- @docker stop $(CONTAINER_NAME)
|
||||
- @docker rm $(CONTAINER_NAME)
|
||||
- @docker rmi $(IMAGE_NAME)
|
||||
|
||||
Reference in New Issue
Block a user