# Dockerfile References: https://docs.docker.com/engine/reference/builder/ # Start from the latest golang base image FROM golang:1.13 # Add Maintainer Info LABEL maintainer="Anis Benz" # Set the Current Working Directory inside the container WORKDIR /bot # Build Args ARG LOG_DIR=/bot/logs # Create Log Directory RUN mkdir -p ${LOG_DIR} # Environment Variables ENV LOG_FILE_LOCATION=${LOG_DIR}/bot.log # Copy go mod and sum files COPY go.mod go.sum ./ # Download all dependencies. Dependencies will be cached if the go.mod and go.sum files are not changed RUN go mod download # Copy the source from the current directory to the Working Directory inside the container COPY . . # Expose port 8080 to the outside world EXPOSE 8080 # Declare volumes to mount VOLUME [${LOG_DIR}] # Build the Go app RUN go build -o main . # Command to run the executable CMD ["./main"]