首页 > 其他分享 >go项目部署到服务器上

go项目部署到服务器上

时间:2023-08-07 11:12:27浏览次数:37  
标签:opt 部署 highway go 服务器 docker main highwaypush

  1. 生成linux可执行文件main。

    首先再windows cmd平台下生成linux可执行的文件

    在cmd或者powershell执行以下命令

    set GOARCH=amd64
    go env -w GOARCH=amd64
    set GOOS=linux
    go env -w GOOS=linux
    

    然后到main.go所在的目录下,正常go build即可

    go build main.go
    

    如果想要再切换回windows

    go env -w GOARCH=amd64
    go env -w GOOS=windows
    

    然后又可以愉快的编译exe可执行文件啦

  2. 将项目打包成镜像

    在项目根目录下需要dockerfile文件

    FROM alpine:latest
    #FROM arm64v8/centos:7
    MAINTAINER BigData
    
    # 设置时区为上海
    RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
        && echo "Asia/Shanghai" > /etc/timezone \
        && apk del tzdata
    
    ENV APP_RUN_DIR=/opt/app/
    
    WORKDIR ${APP_RUN_DIR}
    
    ADD ./main ${APP_RUN_DIR}
    ADD ./config.yaml ${APP_RUN_DIR}
    
    # 设置编码
    ENV LANG C.UTF-8
    
    EXPOSE 8888
    
    USER root
    ENTRYPOINT ["/opt/app/main"]
    
    

    将项目放在linux平台下,通过docker命令将项目源代码打包成镜像highwaypush,版本号为v1.0.0

    docker build -t highwaypush:v1.0.0 .
    
  3. 传输

    将镜像highwaypush:v1.0.0打包成tar包highwaypush.tar,方便传输

    docker save -o highwaypush.tar highwaypush:v1.0.0
    

    跨服务器传输文件,将本地的tar传到目标服务器上

    sudo scp highwaypush.tar  ubuntu@172.16.2.83:/home/ubuntu
    

    加载tar包存入本地docker镜像

    sudo docker load -i highwaypush.tar 
    
  4. 创建容器,创建一个以highwaypush:v1.0.0为镜像的容器,容器名为highway_push_service

    sudo docker run -p 11888:8888 --restart=always --log-opt max-size=50m --log-opt max-file=3  --log-driver json-file --name highway_push_service \
    -v /cubd/project/highway_push_service/runtime/resource:/opt/app/resource \
    -v /cubd/project/highway_push_service/runtime/log:/opt/app/log \
    -d highwaypush:v1.0.0
    

    赋予容器内的main脚本权限(先将容器内main拷贝到本地,本地赋权限再上传到容器内。

    sudo docker cp highway_push_service:/opt/app/main /home/ubuntu/miniwaypush/
    sudo chmod 777 /home/ubuntu/miniwaypush/main
    sudo docker cp /home/ubuntu/miniwaypush/main highway_push_service:/opt/app/
    

    启动容器

    sudo docker start highway_push_service
    

    查看容器

    sudo docker ps | grep highway_push_service
    

标签:opt,部署,highway,go,服务器,docker,main,highwaypush
From: https://www.cnblogs.com/luoyingfenfei/p/17610891.html

相关文章

  • RTSP流媒体服务器LntonNVR(源码版)平台硬件更改设备的DNS的具体操作步骤
    LntonNVR作为视频边缘计算网关,提供了软件平台版和硬件设备版两种选择。硬件版本的LntonNVR具有体积小、方便部署等特点,配置完成后可以直接放置在现场,只需通电并连接网络即可使用。因此,很多项目中用户都会选择部署LntonNVR来满足其需求。当用户在配置完固定IP后遇到无法访问域名地址......
  • 比较 Java Enterprise Architecture 中的 MongoDB 和 Couchbase
    MongoDB和Couchbase是两种常用的NoSQL数据库,用于在Java实现的企业架构中存储和管理数据。以下是它们之间的主要差异、比较和权衡。在当今快速发展的企业架构领域,MongoDB和Couchbase已经成为NoSQL数据库中两个重要的竞争者。本文全面探讨了这两个强大解决方案之间的关键差异、比较和......
  • Mongodb主从复制分片群集
    推荐步骤:1.在centos05-centos07上安装mongodb,配置主从复制和分片群集,centos05到centos07添加分片sh1分片群集2.在centos08-centos10上安装mongodb,配置主从复制和分片群集,centos08到centos10添加到分片sh2分片群集3.在centos01到centos03安装mongodb配置为配置节点4.配置分片功能实......
  • 如何构建一个 NodeJS 影院微服务并使用 Docker 部署
    前言如何构建一个NodeJS影院微服务并使用Docker部署。在这个系列中,将构建一个NodeJS微服务,并使用DockerSwarm集群进行部署。以下是将要使用的工具:NodeJS版本7.2.0MongoDB3.4.1DockerforMac1.12.6在尝试本指南之前,应该具备:NodeJS的基本知识Docker的基本知识(并且已经......
  • 【LGR-148-Div.3】洛谷基础赛 #1 & MGOI Round I
    【LGR-148-Div.3】洛谷基础赛#1&MGOIRoundIT1luoguP9502『MGOI』SimpleRoundI|A.魔法数字\(100pts\)水题,场切了。#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#definesortstable_sort#defineendl'\n'intmain(){ ......
  • 『MGOI』Simple Round I | B. 魔法照相馆 题解
    题目传送门一道模拟题。并不复杂的模拟题,也不需要用到贪心。我们可以创建一个数组来记录每个幕布是否被拉上,统计答案的时候,就看看这块幕布前面有多少个没拉上的,最后如果这块幕布拉上了,就重新放下来就行了。#include<bits/stdc++.h>#definelllonglong#defineINF1e9usi......
  • post请求,go源码会把“+”字符转成了空格导致的验签失败问题
    问题描述:安卓7.29的包客户端书城男女图书页面显示异常,冷启动、下拉刷新等都无法恢复,个别用户清除缓存数据后恢复。(说明:安卓从72880开始的包,客户端书城接口升级为v7:/api/v7/book-store,post请求) 问题原因:线上书城男女图书v7接口part1的post接口请求,个别手机出现401验签失败。......
  • Docker部署SpringBoot项目微服务
     登录linux服务器,进入目录  usr/local目录,创建两个文件夹使用alt+p快捷键,将windows目录中生成的jar包,拖到linux桌面使用cp命令,将linux桌面中jar包,复制到指定目录cplesson01-0.0.1-SNAPSHOT.jar/usr/local/docker/lesson01使用vi命令,编辑dockerfile,制作镜......
  • Docker部署SpringBoot项目准备
     创建一个SpringBoot项目测试程序,在Windows中执行java  -jar  xxx.jar查看效果java-jarlesson01-0.0.1-SNAPSHOT.jar主要代码1、pom.xml文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0&q......
  • 初识Go(Golang)语言
    初识Go(Golang)语言Go的诞生1.Go语言的发展历程 2007年,谷歌工程师RobPike,KenThompson和RobertGriesemer开始设计一门全新的语言,这是Go语言的最初原型。 2009年11月10日,Google将Go语言以开放源代码的方式向全球发布。 2015年8月19日,Go1.5版发布,本次......