溫馨提示×

CentOS Golang如何部署應用

小樊
100
2025-02-12 17:33:39
欄目: 編程語言

在CentOS上部署Golang應用可以按照以下步驟進行:

  1. 安裝Go語言環境

    • 下載適合CentOS的Go安裝包,例如 go1.18.linux-amd64.tar.gz。
    • 解壓安裝包到 /usr/local 目錄:
      sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
      
    • 配置環境變量,編輯 ~/.bashrc~/.zshrc 文件,添加以下行:
      export PATH=$PATH:/usr/local/go/bin
      export GOPATH=$HOME/go
      
    • 使環境變量生效:
      source ~/.bashrc
      
    • 驗證安裝:
      go version
      
      如果顯示Go版本信息,則表示安裝成功。
  2. 構建和打包應用

    • 在本地開發環境中,確保項目可以正確編譯和運行。
    • 設置交叉編譯選項:
      export GOOS=linux
      export GOARCH=amd64
      
    • 編譯項目生成可執行文件:
      go build -o main main.go
      
    • 將生成的二進制文件和配置文件上傳到服務器。
  3. 直接部署應用

    • 在服務器上創建存放目錄:
      mkdir -p /root/project/myproject
      
    • 上傳文件到服務器:
      scp main /root/project/myproject/
      scp config.yaml /root/project/myproject/
      
    • 賦予執行權限并運行應用:
      chmod +x /root/project/myproject/main
      nohup /root/project/myproject/main -c /root/project/myproject/config.yaml > start.log 2>&1 &
      
    • 查看進程和日志:
      ps ef | grep main
      tail -f start.log
      
  4. 使用Docker容器化部署

    • 編寫 Dockerfile
      FROM golang:alpine
      WORKDIR /app
      COPY . .
      RUN go build -o main .
      EXPOSE 8080
      CMD ["./main"]
      
    • 構建Docker鏡像:
      docker build -t myimage .
      
    • 運行Docker容器:
      docker run -d -p 8080:8080 myimage
      
    • 查看容器狀態:
      docker ps -a
      
  5. 使用Kubernetes進行容器編排(可選):

    • 編寫 Deployment 配置文件:
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: myapp
      spec:
        replicas: 3
        selector:
          matchLabels:
            app: myapp
        template:
          metadata:
            labels:
              app: myapp
          spec:
            containers:
            - name: myapp
              image: myimage
              ports:
              - containerPort: 8080
      
    • 創建 DeploymentService
      kubectl apply -f deployment.yaml
      

通過以上步驟,你可以在CentOS系統上成功部署和運行Golang應用。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女