Docker Compose自动化

// docker启动
// springboot
docker run --name springboot -p 8888:8888 --network heima_java springboot

// redis
docker run -d --name redis -p 6379:6379 --network heima_java redis:5.0.14

// nginx
docker run -d --name nginx -p 80:80 -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/conf.d:/etc/nginx/conf.d nginx:1.18.0

// mysql
docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=xmy214 mysql
// Dockerfile
FROM openjdk:17

ENV TZ=Asia/Shanghai

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY springboot.jar /app.jar

ENTRYPOINT ["java", "-jar", "/app.jar"]
// 如果使用本地目录挂载需要让他们在同层目录
// Dockerfile和jar包也要在同层目录
// 提示不需要这个
// version: '3.8'

// mysql和nginx的本地目录挂载,持久化存储 
services:
  springboot:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: springboot
    ports:
      - "8888:8888"
    networks:
      - heima_java
    depends_on:
      - mysql
      - redis
  redis:
    image: redis:5.0.14
    container_name: redis
    ports:
      - "6379:6379"
    networks:
      - heima_java

  nginx:
    image: nginx:1.18.0
    container_name: nginx
    ports:
      - "80:80"
    volumes:
      - /root/nginx/html:/usr/share/nginx/html
      - /root/nginx/conf.d:/etc/nginx/conf.d
    networks:
      - heima_java
    depends_on:
      - springboot
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=xmy214 
    volumes:
      - /root/mysql/log:/var/log/mysql
      - /root/mysql/data:/var/lib/mysql
      - /root/mysql/conf:/etc/mysql/conf.d
    networks:
      - heima_java

networks:
  heima_java:
    name: hm_java
// 后台启动所有docker compose服务
docker compose up -d

滚动至顶部