Docker部署golang程序到阿里云

2024-04-06  本文已影响0人  eden_lx

最近闲来无聊记录一下docker部署golang项目到阿里云服务器中
1.创建目录在目录内创建main.go文件然后在main.go中写一个很简单的程序做测试内容如下:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("deploy successful"))
    })
    server := &http.Server{
        Addr: ":8888",
    }
  fmt.Println("start server")
    if err := server.ListenAndServe(); err != nil {
        fmt.Printf("start server failed, err:%v\n", err)
    }
}

2.在你的Golang项目根目录下创建一个名为Dockerfile的文件,该文件用于定义Docker镜像的构建规则。示例Dockerfile内容如下:

# 使用官方的Go镜像作为基础镜像  
FROM golang:latest  

# 设置工作目录  
WORKDIR /app  

# 将当前目录下的所有文件复制到容器的工作目录  
COPY . .  

# 编译Go代码  
RUN go build -o main .  

# 设置容器启动时执行的命令  
CMD ["./main"]  

3.打开终端,进入到Golang项目根目录,并执行以下命令来构建Docker镜像:

docker build -t your_image_name . 

其中,your_image_name是你想要给镜像起的名称,注意最后的"."表示Dockerfile在当前目录下。


image.png

4.完成镜像构建后,使用以下命令登录到阿里云的Docker镜像仓库:

docker login --username=your_username --password=your_password registry.cn-hangzhou.aliyuncs.com  

其中,your_username和your_password是你的阿里云账号信息。

5.登录到阿里云服务器,安装Docker,并执行以下命令来拉取并运行镜像:

docker pull registry.cn-hangzhou.aliyuncs.com/your_username/your_image_name  
docker run -d -p 8888:8888 registry.cn-hangzhou.aliyuncs.com/your_username/your_image_name

其中,your_image_name是之前推送到阿里云镜像仓库的镜像名称。

上一篇 下一篇

猜你喜欢

热点阅读