这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
1 连接到本地数据库
- 创建一个目录
mkdir example - 进入目录
cd example - 初始化
go mod init gorm_example - 安装gorm
go get -u gorm.io/gorm - 安装驱动
gorm.io/driver/mysql - 创建一个main.go文件写入
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type Product struct {
gorm.Model
Code string
Price uint
}
func main() {
// refer https://github.com/go-sql-driver/mysql#dsn-data-source-name for details
dsn := "root:12345678@tcp(127.0.0.1:3306)/newdb?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
db.AutoMigrate(&Product{})
}
若连接不上,打开终端输入mysql -u root -p
和creat database newdb;即可。
2 docker 的使用
docker build命令用于从Dockerfile构建镜像:根据目录下的 Dockerfile 文件构建镜像docker build -t kitex-examples:v1 .构建名为kitex-examples版本号为v1的镜像。- 使用
docker images查看刚构建的镜像。 - 进入容器内部
docker exec -it kitex-examples /bin/sh - Dockerfile文件示例:
FROM golang:1.16.6-alpine //指定基础镜像
RUN apk update && apk add git //目前不知道
WORKDIR /code //指定容器工作目录
COPY . . //复制当前所有文件
RUN go env -w GOPROXY=https://goproxy.io,direct //设置代理
RUN go env -w GO111MODULE=on //设置模块支持
RUN go build -o hello-client ./hello/client //编译文件
RUN go build -o hello-server ./hello //编译
- 运行server
docker run --network host kitex-examples ./hello-server - 运行client
docker run --network host kitex-examples ./hello-client
3 docker-compose 的使用
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
- 定义Python应用
mkdir compose_test
cd compose_test
mkdir src
mkdir docker
在compose_test/src/目录下创建python flask应用 compose_test/src/app.py文件。
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis = Redis(host = 'redis' , port = 6379)
@app.route('/')
def hello():
count = redis.incr('hits')
return 'hello world ! I have been seen {} times .\n'.farmat(count)
if __name__ == '__main__':
print("hhhh")
app.run(host="0.0.0.0",debug=True)
创建python 需求文件 compose_test/src/requirements.txt
flask
redis
创建容器的Dockerfile文件
一个容器一个Dockerfile文件,在compose_test/目录中创建Dockerfile文件:
FROM python:3.7
COPY src/ /opt/src
WORKDIR /opt/src
RUN #pip install -r requirements.txt
CMD ["python","app.py"]
定义docker-compose脚本
在compose_test/docker/目录下创建docker-compose.yml文件,并在里面定义服务,内容如下:
version: '3'
services:
web:
build: ../
ports:
- "5000:5000"
redis:
image: redis:3.0.7
使用Compose构建并运行您的应用程序
在compose_test/docker/目录下执行docker-compose.yml文件:
docker-compose up
然后在浏览器中输入http://0.0.0.0:5000/查看运行的应用程序。