如何把在本地开发好的项目部署到服务器上?

2023年 9月 28日 22.3k 0

1.如何把在本地开发好的项目部署到服务器上?

1.1 在服务器终端生成名为httpserver的容器

[root@VM-4-10-centos HttpServer]# docker build -t httpserver .

1.2 运行容器

# 在容器内部监听 8080/tcp 端口,并将其映射到主机的 8081/tcp 端口
[root@VM-4-10-centos HttpServer]# docker run --rm -p 8080:8081  httpserver
  • 为什么要把8080(容器)->8081(主机)?
    • 因为代码将主机的监听端口固定为8081

image.png

2.一些其他常用的命令

2.1 查看正在运行的容器

[root@VM-4-10-centos HttpServer]# docker ps
CONTAINER ID   IMAGE        COMMAND    CREATED          STATUS          PORTS                                                 NAMES
eb6eeaf5d34c   httpserver   "./main"   28 minutes ago   Up 28 minutes   8080/tcp, 0.0.0.0:8080->8081/tcp, :::8080->8081/tcp   laughing_bouman

2.2 在正在运行的容器内执行一个shell(这里在容器内执行了ls命令)

[root@VM-4-10-centos HttpServer]# docker exec -it eb6eeaf5d34c sh
/app # ls
images  main

3.Dockerfile怎么写?

# 1.设置基础镜像为 golang:1.21.1-bookworm
FROM golang:1.21.1-bookworm as builder

ENV GO111MODULE=on 
    GOPROXY=https://goproxy.cn,direct

# 2.设置工作目录为 /app
WORKDIR /app

# 将当前目录下的所有文件复制到容器的 /app 目录中
COPY . .

# 运行 go mod tidy 来整理依赖项
RUN go mod tidy

# 切换工作目录到 /app/cmd
WORKDIR /app/cmd

# 复制 Controller 目录中的文件到容器的 /app/cmd/Controller 目录中
COPY ../Controller ./Controller
# 复制 main.go 文件到容器的 /app/cmd 目录中
COPY ../main.go .

# 构建可执行文件
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o main

# 3.设置基础镜像为 busybox:1.28.4
FROM busybox:1.28.4

# 设置工作目录为 /app
WORKDIR /app

# 复制本地的 images 目录到容器的 /app/images 目录中。
COPY images images
# 复制构建阶段中生成的可执行main 到当前镜像的 /app 目录
COPY --from=builder /app/cmd/main .

# 指定Gin框架的运行模式为发布模式
ENV GIN_MODE=release
# 容器将监听的端口号为 8080
EXPOSE 8080
# 运行编译后的可执行文件 main
ENTRYPOINT ["./main"]

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论