Dockerfile
Docker 允许开发人员将他们的应用程序以及所有依赖项打包成一个称为容器的单个单元。这确保了在不同环境(如开发、测试和生产)之间的一致性,减少了“但是它在我的机器上运行正常”的问题。
安装 Docker: https://docs.docker.com/engine/install/
添加 Makefile
Makefile 是在软件开发项目中使用的一种特殊文件(特别是在类 Unix 操作系统中),用于自动化从源代码编译和构建可执行程序或库。
创建 Makefile:
# Binary name
BINARY_NAME=lr_ft_books
.PHONY: lint
lint:
@echo "Linting..."
golangci-lint run
build:
@echo "Building $(BINARY_NAME)..."
go build -o $(BINARY_NAME)
build-linux:
@echo "Building $(BINARY_NAME) for Linux..."
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o $(BINARY_NAME)
因为服务会部署到 Docker 中的 Linux 环境,故此处有一命令是针对 Linux 操作系统进行构建。
执行 make build-linux
,构建二进制文件:
make build-linux
服务的 Dockerfile
添加 Dockerfile:
# alpine linux
FROM alpine:3.19
ENV APP_BIN=lr_ft_books
ARG SERVER_DIR=/home/.server
WORKDIR $SERVER_DIR
COPY ./bin/${APP_BIN} .
ENV GIN_MODE=release
CMD ./${APP_BIN}
Alpine Linux 是一个轻量级的安全的 Linux 发行版,特别适用于容器化环境、嵌入式系统和资源受限环境。这些环境下效率和安全性至关重要。
准备好 Dockerfile 之后,就可以在 Docker Compose 里启动所有服务了。