docker部署go简单web项目(无mysql等附加功能)

首先准备好go语言代码

代码表示当访问主机上8080端口下的/hello路径时,会返回hello,world。

package mainimport ("fmt""github.com/gin-gonic/gin"
)type hh struct {S string
}func main() {router := gin.Default()router.GET("/hello", func(c *gin.Context) {c.JSON(200, hh{S: "hello world!"})})err := router.Run(":8080")if err != nil {fmt.Println(err)return}}

准备Dockerfile文件

FROM golang:1.23# 为我们的镜像设置必要的环境变量
ENV GO111MODULE=on \CGO_ENABLED=0 \GOOS=linux \GOARCH=amd64 \GOPROXY=https://goproxy.io,direct# 移动到工作目录:/app/demo3
WORKDIR /app/demo3# 先复制 go.mod 和 go.sum 文件
COPY go.mod go.sum ./# 下载依赖
RUN go mod download# 将剩余代码复制到容器中
COPY . .# 编译 Go 代码,指定输出文件名为 main
RUN go build -o main main.go# 声明服务端口
EXPOSE 8080# 启动容器时运行的命令
ENTRYPOINT ["./main"]

注意第一行基础镜像的版本要和你项目所用的go版本相同在这里插入图片描述
在这里插入图片描述

将以下文件放入宿主机中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

构建镜像

首先在宿主机上进入Dockerfile文件所在的目录,然后输入以下命令开始构建镜像 。 注意 -t 后跟的是镜像名,是自定义的,可以不和我一样。

docker build -t demo3image .

输入完成后等待构建成功即可,构建不会很快,我这里等了大概有十多分钟。
在这里插入图片描述

创建并运行容器

镜像前面创建好了,我们现在要让镜像在容器里跑起来,输入下方指令即可。–name 后的demo3表示容器名称,可以自定义。

docker run -d --name demo3 -p 8080:8080 dem03image

在这里插入图片描述

添加安全组

我用的服务器是阿里云的,以下是配置阿里云服务器安全组的步骤
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

验收结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OceanBase数据库实战:Windows Docker部署与DBeaver无缝对接

一、前言 OceanBase 是一款高性能、高可扩展的分布式数据库,适用于大规模数据处理和企业级应用。 随着大数据和云计算的普及,OceanBase 在企业数字化转型中扮演着重要角色。学习 OceanBase 可以帮助开发者掌握先进的分布式数据库技术,提升数…

在 HuggingFace 中使用 SSH 进行下载数据集和模型

SSH 是一种 安全通讯的协议,我们通过配置 SSH 的密钥 来在 Git 上实现 Huggingface 模型的命令行下载。 参考网址:https://huggingface.co/docs/hub/security-git-ssh 点击自己的头像,点击 Add SSH key 在 Windows 上,我们实现已…

.NET Core MVC IHttpActionResult 设置Headers

最近碰到调用我的方法要求返回一个代码值,但是要求是不放在返回实体里,而是放在返回的Headers上 本来返回我是直接用 return Json(res) 这种封装的方法特别简单,但是没有发现设置headers的地方 查询过之后不得已换了个返回 //原来方式 //…

Linux-----进程间通信

一、按通信范围分类 同一主机进程通信 传统IPC方式: 管道(无名管道、有名管道)信号(Signal) System V IPC: 共享内存(效率最高)消息队列信号量 POSIX IPC(较新标准&#…

Ant Design按钮样式深度适配:实现<Button>与<a>标签颜色完美同步

Ant Design按钮样式深度适配&#xff1a;实现与标签颜色完美同步 问题现象诊断 组件结构原型 <Button type"link" disabled{disabled}><a href"...">下载</a> </Button>样式冲突表现 状态按钮颜色链接颜色视觉问题启用态Ant蓝…

使用Python爬虫获取淘宝商品详情:API返回值说明与案例指南

在电商数据分析和运营中&#xff0c;获取淘宝商品详情是常见的需求。淘宝开放平台提供了丰富的API接口&#xff0c;允许开发者通过合法的方式获取商品信息。本文将详细介绍如何使用Python编写爬虫&#xff0c;通过淘宝API获取商品详情&#xff0c;并解析API返回值的含义和结构。…

并发 -- 无锁算法与结构

文章目录 什么是无锁算法什么是原子变量什么是CAS操作Compare-And-Swap Weak在哪些情况下会失败举例说明无锁结构无锁结构的问题 什么是无锁算法 无锁算法&#xff08;Lock-Free Algorithm&#xff09;是一种并发编程技术&#xff0c;旨在实现多线程环境下的高效数据共享&…

考研/保研复试英语问答题库(华工建院)

华南理工大学建筑学院保研/考研 英语复试题库&#xff0c;由华工保研er和学硕笔试第一同学一起整理&#xff0c;覆盖面广&#xff0c;助力考研/保研上岸&#xff01;需要&#x1f447;载可到文章末尾见小&#x1f360;。 以下是主要内容&#xff1a; Part0 复试英语的方法论 Pa…

岳阳市美术馆预约平台(小程序论文源码调试讲解)

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的&#xff0c;在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值&#xff0c;吸引更多的访问者访问系统&#xff0c;以及让来访用户可以花费更多时间停留在系统上&#xff0c;则表明该系统设计得比较专…

Python游戏编程之赛车游戏6-3

1 “敌人”汽车类的创建 在创建玩家汽车类之后&#xff0c;接下来创建“敌人”汽车类。“敌人”汽车类与玩家类一样&#xff0c;也是包含两个方法&#xff0c;一个是__init__()&#xff0c;另一个是move()。 1.1 __init__()方法 “敌人”汽车类的__init__()方法代码如图1所示…

TCP/UDP调试工具推荐:Socket通信图解教程

TCP/UDP调试工具推荐&#xff1a;Socket通信图解教程 一、引言二、串口调试流程三、下载链接 SocketTool 调试助手是一款旨在协助程序员和网络管理员进行TCP和UDP协议调试的网络通信工具。TCP作为一种面向连接、可靠的协议&#xff0c;具有诸如连接管理、数据分片与重组、流量和…

神经网络 - 神经元

人工神经元(Artificial Neuron)&#xff0c;简称神经元(Neuron)&#xff0c;是构成神经网络的基本单元&#xff0c;其主要是模拟生物神经元的结构和特性&#xff0c;接收一组输入信号并产生输出。 生物学家在 20 世纪初就发现了生物神经元的结构。一个生物神经元通常具有多个树…

蓝桥杯备考:贪心算法之矩阵消除游戏

这道题是牛客上的一道题&#xff0c;它呢和我们之前的排座位游戏非常之相似&#xff0c;但是&#xff0c;排座位问题选择行和列是不会改变元素的值的&#xff0c;这道题呢每每选一行都会把这行或者这列清零&#xff0c;所以我们的策略就是先用二进制把选择所有行的情况全部枚举…

DeepSeek系统架构的逐层分类拆解分析,从底层基础设施到用户端分发全链路

一、底层基础设施层 1. 硬件服务器集群 算力单元&#xff1a; GPU集群&#xff1a;基于NVIDIA H800/H100 GPU构建&#xff0c;单集群规模超10,000卡&#xff0c;采用NVLink全互联架构实现低延迟通信。国产化支持&#xff1a;适配海光DCU、寒武纪MLU等国产芯片&#xff0c;通过…

ktransformers 上的 DeepSeek-R1 671B open-webui

ktransformers 上的 DeepSeek-R1 671B open-webui 一、下载GGUF模型1. 创建目录2. 魔塔下载 DeepSeek-R1-Q4_K_M3. 安装显卡驱动和cuda4. 显卡 NVIDIA GeForce RTX 4090 二、安装ktransformers1. 安装依赖2. 安装uv工具链3. 下载源码4. 创建python虚拟环境 三、编译ktransforme…

smolagents学习笔记系列(五)Tools-in-depth-guide

这篇文章锁定官网教程中的 Tools-in-depth-guide 章节&#xff0c;主要介绍了如何详细构造自己的Tools&#xff0c;在之前的博文 smolagents学习笔记系列&#xff08;二&#xff09;Agents - Guided tour 中我初步介绍了下如何将一个函数或一个类声明成 smolagents 的工具&…

形式化数学编程在AI医疗中的探索路径分析

一、引言 1.1 研究背景与意义 在数字化时代,形式化数学编程和 AI 形式化医疗作为前沿领域,正逐渐改变着我们的生活和医疗模式。形式化数学编程是一种运用数学逻辑和严格的形式化语言来描述和验证程序的技术,它通过数学的精确性和逻辑性,确保程序的正确性和可靠性。在软件…

C#初级教程(3)——变量与表达式:从基础到实践

一、为什么使用变量 计算机程序本质上是对数据的操作&#xff0c;数字、文字、图片等在计算机中都属于数据。而变量&#xff0c;就是数据在计算机内存中的 “栖息地”。我们可以把变量想象成一个个小盒子&#xff0c;这些盒子能存放各种数据&#xff0c;需要时还能随时取出。 二…

【深度学习神经网络学习笔记(三)】向量化编程

向量化编程 向量化编程前言1、向量化编程2、向量化优势3、正向传播和反向传播 向量化编程 前言 向量化编程是一种利用专门的指令集或并行算法来提高数据处理效率的技术&#xff0c;尤其在科学计算、数据分析和机器学习领域中非常常见。它允许通过一次操作处理整个数组或矩阵的…

海康威视摄像头RTSP使用nginx推流到服务器直播教程

思路&#xff1a; 之前2020年在本科的时候&#xff0c;由于项目的需求需要将海康威视的摄像头使用推流服务器到网页进行直播。这里将自己半个月琢磨出来的步骤给大家发一些。切勿转载&#xff01;&#xff01;&#xff01;&#xff01; 使用网络摄像头中的rtsp协议---------通…