赞
踩
此目录结构用于docker-compose
执行挂载
├── mysql
│ ├── data
│ └── init.sql
├── redis
│ ├── data
│ └── redis.conf
├── nginx
│ ├── config
│ │ ├── default.conf # 默认的配置文件
│ └── app # 存放前端打包后的文件
├── java
│ ├── Dockerfile # 构建java容器
│ └── app.jar
└── LICENSE
server { listen 80; server_name localhost; location / { root /server; index index.html index.htm; try_files $uri $uri/ /index.html; } location /api { client_max_body_size 50M; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://java-container:8096; # 此处用容器名称代替IP地址 rewrite ^.api/?(.*)$ /$1 break; proxy_http_version 1.1; proxy_read_timeout 3600s; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } }
FROM openjdk:8-jdk MAINTAINER author RUN mkdir -p /home/server RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone WORKDIR /home/server # 端口 ENV API_PORT=8096 #启动自行加载 ENV PARAMS="--server.port=${API_PORT} --spring.profiles.active=docker,auth,framework " ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar /home/server/engine-api.jar ${PARAMS}"]
version: '3' services: mysql: image: mysql:8.0 container_name: mysql-container environment: MYSQL_ROOT_PASSWORD: "you-password" TZ: "Asia/Shanghai" # ports: # - "3306:3306" volumes: - ./mysql/data:/var/lib/mysql # mysql数据存储目录挂载 - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql #初始化mysql容器时sql脚本 command: --max_connections=1000 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --default-authentication-plugin=mysql_native_password networks: - my-network redis: image: redis:3.2 container_name: redis-container # ports: # - "6379:6379" command: redis-server --requirepass 'you-password' volumes: - ./redis/data:/data - ./redis/redis.conf:/usr/local/etc/redis/redis.conf # 映射 Redis 配置文件 networks: - my-network nginx: image: nginx:1.22 container_name: nginx-container ports: - "80:80" volumes: - ./nginx/config/:/etc/nginx/conf.d - ./nginx/app:/server networks: - my-network java: container_name: java-container build: context: ./java dockerfile: Dockerfile volumes: - ./java:/home/server networks: - my-network networks: my-network: driver: bridge
注意:java配置文件中的mysql、redis连接地址修改为对应容器名称
每次jar包版本更新之后,只需要替换./java
目录下的jar包,然后重启java-container
容器
docker-compose restart java-container
同理nginx
配置文件更新之后,只需要重启nginx-container
容器
docker-compose restart nginx-container
docker-compose up
:启动容器组,根据 docker-compose.yml
文件中的配置创建和启动容器。
docker-compose down
:停止并移除容器组,包括容器、网络和卷等相关资源。
docker-compose ps
:显示当前运行的容器组中的容器状态。
docker-compose logs
:显示容器组中的容器日志。
docker-compose exec
:在运行的容器中执行命令。
docker-compose build
:根据 docker-compose.yml
文件中的配置构建镜像。
docker-compose images
:列出容器组中使用的镜像。
docker-compose pull
:拉取在 docker-compose.yml
文件中定义的服务所使用的镜像。
docker-compose restart
:重启容器组中的服务。
docker-compose stop
:停止容器组中的服务。
docker-compose pause
:暂停容器组中的服务。
docker-compose unpause
:取消暂停容器组中的服务。
docker-compose down -v
:停止并移除容器组,并移除所有相关的卷。
docker-compose down --rmi all
会停止容器并删除容器相关资源,还会删除与服务关联的所有镜像。
docker-compose config
:验证并显示合并后的 Compose 文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。