Docker 部署 Gin+MySQL+Redis 项目(三)

400 阅读1分钟

「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战」。

4. docker-compose.yml

当我们有多个容器需要启动的时候,我们可以用docker-compose.yml进行容器的管理

因为我们生成中一般不会一个一个容器启动,我们会编写docker-compose文件去编写我们的文件。 前提我们要已经编写完我们当前项目的Dockerfile。

ports 是进行端口的映射 depends_on 是启动的顺序,因为有的项目有依赖的启动顺序。 volumes 是进行数据的映射,就是将宿主机和容器文件进行映射。 build 是根目录下所有的文件进行build

version: '2'

services:
  civil:
    build: ./
    image: mall:2.0
    container_name: mall
    restart: always
    environment:
      MYSQL_DSN: "root:root@tcp/mall_db?charset=utf8&parseTime=True&loc=Local"
    ports:
      - 3000:3000
    depends_on:
      - mysql
      - redis
  mysql:
    container_name: mysql
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mall_db
    volumes:
      - /var/lib/mysql:/var/lib/mysql
    ports:
      - 3306:3306

  redis:
    container_name: redis
    image: redis:latest
    restart: always
    volumes:
      - /usr/local/redis:/usr/local/redis
    ports:
      - 6379:6379

使用

docker-compose -f docker-compose.yml up -d

启动运行截图

在这里插入图片描述

在这里插入图片描述

都启动成功了

在这里插入图片描述 再进行测试

在这里插入图片描述 成功即可!

最后

在此非常感谢运维大佬 愿许浪尽天涯 的帮助,帮我排查了镜像的问题!

Dockerfile文件我本来是写FROM scratch的,但是好像没有执行成功,才换成了busybox镜像 在这里插入图片描述

大家有什么问题也可以问这位运维大佬! 愿许浪尽天涯