» Go:使用Socket.IO创建Web Chat App在线聊天应用 » 3. 部署 » 3.1 Dockerfile

Dockerfile

Docker 允许开发人员将他们的应用程序以及所有依赖项打包成一个称为容器的单个单元。这确保了在不同环境(如开发、测试和生产)之间的一致性,减少了“但是它在我的机器上运行正常”的问题。

添加 Makefile

Makefile 是在软件开发项目中使用的一种特殊文件(特别是在类 Unix 操作系统中),用于自动化从源代码编译和构建可执行程序或库。

创建 Makefile:

# Binary name
BINARY_NAME=lr_webchat

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 https://www.alpinelinux.org/
FROM alpine:3.19

ENV APP_BIN=lr_webchat
ARG SERVER_DIR=/home/.server
WORKDIR $SERVER_DIR
COPY ./bin/${APP_BIN} .

ENV GIN_MODE=release

CMD ./${APP_BIN}

准备好后端的 Dockerfile 之后,就可以在 Docker Compose 里配合前端 app 一起启动了。

上页下页