// 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