学习路之go --go入门

学习路之go --go入门

  • 一、
    • [1. windows环境搭建:](#1. windows环境搭建:)
    • [2. docker环境搭建:](#2. docker环境搭建:)
  • 二、
  • 三、

一、

1. windows环境搭建:

安装包下载地址为:https://go.dev/dl/。

如果打不开可以使用这个地址:https://golang.google.cn/dl/。

安装后已经默认将 c:\Go\bin 目录添加到 Path 环境变量中

D:\workspace\Go_space\test.go

go 复制代码
// main.go
package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Hello from Dockerized Go!")
}

func main() {
	fmt.Println("Go server starting on :8080...")
	http.ListenAndServe(":8080", http.HandlerFunc(handler))
}

cmd命令行中:

bash 复制代码
go run test.go


2. docker环境搭建:

docker-go

├── main.go # 入口文件

├── go.mod # Go 模块定义

└── Dockerfile # Docker 构建文件

main.go

bash 复制代码
// main.go
package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Hello from Dockerized Go!")
}

func main() {
	fmt.Println("Go server starting on :8080...")
	http.ListenAndServe(":8080", http.HandlerFunc(handler))
}

go.mod

bash 复制代码
module docker-go

go 1.22

Dockerfile

bash 复制代码
# 构建阶段
FROM golang:1.22 AS builder

WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o myapp .

# 运行阶段(轻量级)
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/

COPY --from=builder /app/myapp .
EXPOSE 8080
CMD ["./myapp"]
  1. cmd 运行:
bash 复制代码
docker run -it --rm -v "%cd%:/app" -w /app -p 8080:8080 golang:1.22 go run main.go
  1. 访问
  1. 构建镜像
bash 复制代码
docker build -t my-go-app .
  1. 运行容器
bash 复制代码
docker run -d -p 8080:8080 --name go-app my-go-app

二、

三、

相关推荐
存在morning1 天前
【GO语言开发实践】二 GO 并发快速上手
大数据·开发语言·golang
geovindu1 天前
go: Read-Write Lock Pattern
开发语言·后端·设计模式·golang·读写锁模式
知彼解己2 天前
Go 开发环境 安装
后端·golang
会编程的土豆2 天前
Go 连接 Redis 代码详细解析
开发语言·redis·golang
XMYX-02 天前
31 - Go url 解析:从字符串到结构化请求的完整路径
开发语言·golang
lolo大魔王2 天前
Go 语言数据库操作|GORM 实现 CRUD 超详细实战
数据库·golang
喵了几个咪2 天前
单体项目如何“无感”演进微服务?GoWind的Core+BFF分层实践
微服务·架构·golang·gowind·bff
139的世界真奇妙2 天前
生产问题排查记录
golang·bug·学习方法
XMYX-02 天前
30 - Go 随机数与 UUID 生成:原理、陷阱与工程实践
开发语言·golang
Wy_编程2 天前
go语言中的Channel
开发语言·golang