Docker部署项目mysql、redis配置|青训营

2023年 8月 13日 63.2k 0

  • config.toml
# 记录当前服务器的ip和启动端口号,当前服务器的ip用于生成对应的视频链接地址
[server]
ip = "127.0.0.1"
port = 8080

# 关系型数据库配置
[mysql]
host = "host.docker.internal"
port = 3307
database = "douyin"
username = "root"
password = "123456"
charset = "utf8mb4"
parse_time = true
loc = "Local"

# redis存储每个用户是否对某个视频点赞,以及关注了某个人
[redis]
host = "host.docker.internal:6379"
port = 49153
database = 0

# 保存视频的路径,截图的路径(截图放在lib目录)
[path]
ffmpeg_path = "./lib/ffmpeg.exe"
static_source_path = "./static"
  • docker-compose.yml
version: '3.7' # docker compose语法版本

networks:
  todolist: # 网络
    driver: bridge # 驱动程序

services:
  mysql:
    container_name: mysql
    image: mysql:latest
    restart: always # 容器在停止后总是重新启动
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=tiktok
      - MYSQL_USER=tiktok
      - MYSQL_PASSWORD=tiktok
      - TZ=Asia/Shanghai
    volumes:
      - ./config/sql:/docker-entrypoint-initdb.d/ # 将本地目录 ./config/sql 挂载到容器内部的 /docker-entrypoint-initdb.d/ 目录,提供用于初始化数据库的SQL脚本
    ports:
      - "3306:3306" # 将容器的3306端口映射到主机的3306端口

  redis:
    container_name: redis
    image: redis:latest
    restart: always
    volumes:
      - /usr/local/redis:/usr/local/redis # 将主机目录 /usr/local/redis 挂载到容器内部的 /usr/local/redis 目录,可以在主机上持久化存储Redis数据
    ports:
      - "6379:6379"
  • Dockerfile
FROM golang:1.20.7 as builder

ENV GO111MODULE=on 
    GOPROXY=https://goproxy.cn,direct

# 设置工作目录为 /app
WORKDIR /app 
# 将当前目录下的所有文件复制到容器的 /app 目录中
COPY . .
RUN go mod tidy
# 切换工作目录到 /app/cmd
WORKDIR /app/cmd
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build  -ldflags="-w -s" -o ../main
# 切换工作目录回到 /app
WORKDIR /app
# 创建一个名为 publish 的目录,并将编译后的可执行文件 main 和 conf 目录复制到 publish 目录中
RUN mkdir publish  
    && cp main publish  
    && cp -r conf publish

# 指定基础镜像为 Busybox 1.28.4
FROM busybox:1.28.4

# 设置工作目录为 /app
WORKDIR /app

# 从builder阶段的镜像中复制 /app/publish目录到当前镜像的 /app目录
COPY --from=builder /app/publish .

# 指定Gin框架的运行模式为发布模式
ENV GIN_MODE=release
# 容器将监听的端口号为 8080
EXPOSE 8080

# 运行编译后的可执行文件 main
ENTRYPOINT ["./main"]

项目启动后,回到docker-desktop查看

image.png

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论