Browse Source

编写Dockerfile文件

459242451@qq.com 3 years ago
parent
commit
e98c3e6ee8
5 changed files with 201 additions and 170 deletions
  1. 63 0
      Dockerfile
  2. 82 78
      docker/docker-compose.yml
  3. 0 44
      pom.xml
  4. 11 4
      ruoyi-admin/Dockerfile
  5. 45 44
      ruoyi-admin/src/main/resources/application.yml

+ 63 - 0
Dockerfile

@@ -0,0 +1,63 @@
+# Version 0.1
+# 基础镜像
+FROM centos:7
+# 维护者信息
+MAINTAINER XinTong
+VOLUME /tmp
+#自动安装依赖
+RUN  cd /etc/yum.repos.d/ \
+    && yum -y install wget \
+    && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo \
+    && yum clean all \
+    && yum makecache \
+    && yum update -y \
+    &&  yum -y  install nginx  \
+    &&  yum -y  install  java-1.8.0-openjdk java-1.8.0-openjdk-devel  \
+    &&  yum -y  install redis    \
+#这里可以设置 域名
+# 可以送本地加载 使用ADD 也可以直接写
+   && echo "server {  \
+                       listen       81; \
+                       location ^~ /prod-api { \
+                      proxy_pass              http://127.0.0.1:8090/api; \
+                      proxy_set_header        Host 127.0.0.1; \
+                      proxy_set_header        X-Real-IP \$remote_addr; \
+                      proxy_set_header        X-Forwarded-For \$proxy_add_x_forwarded_for; \
+                  } \
+                  #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \
+                  location / { \
+                     root   /var/www/html/; \
+                      index  index.html index.htm; \
+                      if (!-e \$request_filename) { \
+                          rewrite ^(.*)\$ /index.html?s=\$1 last; \
+                          break; \
+                      } \
+                  } \
+                  access_log  /var/log/nginx/access.log ; \
+              } " > /etc/nginx/conf.d/default.conf  \
+
+ # 设置启动脚本
+     && touch /etc/init.d/start.sh \
+     && touch yjzh.log \
+     && chmod +x /etc/init.d/start.sh \
+     && echo "#!/bin/bash  " >> /etc/init.d/start.sh \
+     && echo "/usr/bin/redis-server  & " >> /etc/init.d/start.sh \
+     && echo "/usr/sbin/nginx  -c /etc/nginx/nginx.conf" >> /etc/init.d/start.sh \
+     && echo " java -jar /app.jar   " >> /etc/init.d/start.sh \
+     &&  mkdir  -p  /var/www \
+     &&  mkdir -p /var/www/html
+# 前端迁移到系统文件中 默认是80端口 同级目录下的html地址
+ADD  ruoyi-ui/dist /var/www/html/
+# 拷贝相关的jar包
+ADD ruoyi-admin/target/ruoyi-admin.jar app.jar
+EXPOSE  80  8090 81
+ENTRYPOINT /bin/sh -c   /etc/init.d/start.sh
+
+#启动脚本
+#docker rmi $(docker images | grep "^<none>" | awk "{print $3}") 删除<none>
+
+#docker build -t docker.xt.wenhq.top:8083/docker_r/yjzh_test:1.0 .
+#docker run --privileged=true  -itd --name yjzh_test -v /sys/fs/cgroup:/sys/fs/cgroup:ro  -p 81:81 -p 8080:8080 -p 82:80  959e5d6a26e7
+
+# 删除镜像
+#curl -I -X DELETE http://docker.xt.wenhq.top:8083/v2/docker_r/yjzh_test/manifests/sha256:af0a8819

+ 82 - 78
docker/docker-compose.yml

@@ -1,40 +1,40 @@
 version: '3'
 
 services:
-  mysql:
-    image: mysql:8.0.24
-    container_name: mysql
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-      # root 密码
-      MYSQL_ROOT_PASSWORD: root
-      # 初始化数据库(后续的初始化sql会在这个库执行)
-      MYSQL_DATABASE: ry-vue
-    ports:
-      - 3306:3306
-    volumes:
-      # 数据挂载
-      - /docker/mysql/data/:/var/lib/mysql/
-      # 配置挂载
-      - /docker/mysql/conf/:/etc/mysql/conf.d/
-    command:
-      # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
-      --default-authentication-plugin=mysql_native_password
-      --character-set-server=utf8mb4
-      --collation-server=utf8mb4_general_ci
-      --explicit_defaults_for_timestamp=true
-      --lower_case_table_names=1
-    privileged: true
-    restart: always
-    networks:
-      ruoyi_net:
-        ipv4_address: 172.30.0.36
+#  mysql:
+#    image: mysql:8.0.24
+#    container_name: mysql
+#    environment:
+#      # 时区上海
+#      TZ: Asia/Shanghai
+#      # root 密码
+#      MYSQL_ROOT_PASSWORD: root
+#      # 初始化数据库(后续的初始化sql会在这个库执行)
+#      MYSQL_DATABASE: ry-vue
+#    ports:
+#      - 3306:3306
+#    volumes:
+#      # 数据挂载
+#      - /docker/mysql/data/:/var/lib/mysql/
+#      # 配置挂载
+#      - /docker/mysql/conf/:/etc/mysql/conf.d/
+#    command:
+#      # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
+#      --default-authentication-plugin=mysql_native_password
+#      --character-set-server=utf8mb4
+#      --collation-server=utf8mb4_general_ci
+#      --explicit_defaults_for_timestamp=true
+#      --lower_case_table_names=1
+#    privileged: true
+#    restart: always
+#    networks:
+#      xintong_net:
+#        ipv4_address: 172.30.0.36
 
   nginx-web:
     # 如果需要指定版本 就把 latest 换成版本号
     image: nginx:latest
-    container_name: nginx-web
+    container_name: yjzh-nginx-web
     environment:
       # 时区上海
       TZ: Asia/Shanghai
@@ -53,69 +53,73 @@ services:
     privileged: true
     restart: always
     networks:
-      - ruoyi_net
+      - xintong_net
 
   redis:
     image: redis:6.2.1
-    container_name: redis
+    container_name: redis_test
     ports:
-      - 6379:6379
+      - 6378:6379
     environment:
       # 时区上海
       TZ: Asia/Shanghai
-    volumes:
-      # 配置文件
-      - /docker/redis/conf:/redis/config:rw
-      # 数据文件
-      - /docker/redis/data:/redis/data:rw
-    command: "redis-server /redis/config/redis.conf --appendonly yes"
+#    volumes:
+#      # 配置文件
+#      - /docker/redis/conf:/redis/config:rw
+#      # 数据文件
+#      - /docker/redis/data:/redis/data:rw
+#    command: "redis-server /redis/config/redis.conf --appendonly yes"
     privileged: true
     restart: always
-    networks:
-      ruoyi_net:
-        ipv4_address: 172.30.0.48
+#    networks:
+#      xintong_net:
+#        ipv4_address: 172.30.0.48
 
-  minio:
-    image: minio/minio:RELEASE.2021-07-08T01-15-01Z
-    container_name: minio
-    ports:
-      # api 端口
-      - 9000:9000
-      # 控制台端口
-      - 9001:9001
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-      # 管理后台用户名
-      MINIO_ACCESS_KEY: ruoyi
-      # 管理后台密码,最小8个字符
-      MINIO_SECRET_KEY: ruoyi123
-    volumes:
-      # 映射当前目录下的data目录至容器内/data目录
-      - /docker/minio/data:/data
-      # 映射配置目录
-      - /docker/minio/config:/root/.minio/
-    command: server --console-address ':9001' /data  # 指定容器中的目录 /data
-    privileged: true
-    restart: always
-    networks:
-      ruoyi_net:
-        ipv4_address: 172.30.0.54
+#  minio:
+#    image: minio/minio:RELEASE.2021-07-08T01-15-01Z
+#    container_name: minio
+#    ports:
+#      # api 端口
+#      - 9000:9000
+#      # 控制台端口
+#      - 9001:9001
+#    environment:
+#      # 时区上海
+#      TZ: Asia/Shanghai
+#      # 管理后台用户名
+#      MINIO_ACCESS_KEY: ruoyi
+#      # 管理后台密码,最小8个字符
+#      MINIO_SECRET_KEY: ruoyi123
+#    volumes:
+#      # 映射当前目录下的data目录至容器内/data目录
+#      - /docker/minio/data:/data
+#      # 映射配置目录
+#      - /docker/minio/config:/root/.minio/
+#    command: server --console-address ':9001' /data  # 指定容器中的目录 /data
+#    privileged: true
+#    restart: always
+#    networks:
+#      xintong_net:
+#        ipv4_address: 172.30.0.54
 
-  ruoyi-server1:
-    image: "ruoyi/ruoyi-server:3.1.0"
-    container_name: ruoyi-server1
+  yjzh-server:
+    build:
+      context: ../ruoyi-admin
+    image: "yjzh-server"
+    container_name: yjzh-server
     environment:
       # 时区上海
       TZ: Asia/Shanghai
     volumes:
       # 配置文件
-      - /docker/server1/logs/:/ruoyi/server/logs/
+      - /docker/server/logs/:/ruoyi/server/logs/
     privileged: true
-    restart: always
-    networks:
-      ruoyi_net:
-        ipv4_address: 172.30.0.60
+    ports:
+      - 8080:8080
+    restart: on-failure
+#    networks:
+#      xintong_net:
+#        ipv4_address: 172.30.0.60
 
   ruoyi-server2:
     image: "ruoyi/ruoyi-server:3.1.0"
@@ -129,12 +133,12 @@ services:
     privileged: true
     restart: always
     networks:
-      ruoyi_net:
+      xintong_net:
         ipv4_address: 172.30.0.61
 
 
 networks:
-  ruoyi_net:
+  xintong_net:
     driver: bridge
     ipam:
       config:

+ 0 - 44
pom.xml

@@ -303,48 +303,4 @@
         </pluginRepository>
     </pluginRepositories>
 
-    <profiles>
-        <profile>
-            <id>local</id>
-            <properties>
-                <!-- 环境标识,需要与配置文件的名称相对应 -->
-                <profiles.active>local</profiles.active>
-                <logging.level>debug</logging.level>
-                <endpoints.include>'*'</endpoints.include>
-            </properties>
-        </profile>
-        <profile>
-            <id>dev</id>
-            <properties>
-                <!-- 环境标识,需要与配置文件的名称相对应 -->
-                <profiles.active>dev</profiles.active>
-                <logging.level>debug</logging.level>
-                <endpoints.include>'*'</endpoints.include>
-            </properties>
-            <activation>
-                <!-- 默认环境 -->
-                <activeByDefault>true</activeByDefault>
-            </activation>
-        </profile>
-        <profile>
-            <id>prod</id>
-            <properties>
-                <profiles.active>prod</profiles.active>
-                <logging.level>warn</logging.level>
-                <endpoints.include>health,info</endpoints.include>
-            </properties>
-        </profile>
-
-        <profile>
-            <id>jdk8</id>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-                <jdk>1.8</jdk>
-            </activation>
-            <properties>
-                <java.version>1.8</java.version>
-            </properties>
-        </profile>
-    </profiles>
-
 </project>

+ 11 - 4
ruoyi-admin/Dockerfile

@@ -1,14 +1,21 @@
 FROM anapsix/alpine-java:8_server-jre_unlimited
 
-MAINTAINER Lion Li
+MAINTAINER XinTong
 
-RUN mkdir -p /ruoyi/server
-RUN mkdir -p /ruoyi/server/logs
+RUN mkdir -p /xintong/server
+RUN mkdir -p /xintong/server/logs
 
-WORKDIR /ruoyi/server
+WORKDIR /xintong/server
 
 EXPOSE 8080
 
 ADD ./target/ruoyi-admin.jar ./app.jar
 
 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+#docker build -t docker.xt.wenhq.top:8083/docker_r/yjzh_server:1.0 .
+#docker run --privileged=true  -itd --name yjzh_server -v /sys/fs/cgroup:/sys/fs/cgroup:ro  -p 8080:8080  959e5d6a26e7
+
+#docker push docker.xt.wenhq.top:8083/docker_r/yjzh_server:1.0
+
+#docker pull docker.xt.wenhq.top:8083/docker_r/yjzh_server:1.0

+ 45 - 44
ruoyi-admin/src/main/resources/application.yml

@@ -11,6 +11,44 @@ ruoyi:
   # 获取ip地址开关
   addressEnabled: true
 
+# Spring配置
+spring:
+  application:
+    name: ${ruoyi.name}
+  # 资源信息
+  messages:
+    # 国际化资源文件路径
+    basename: i18n/messages
+  profiles:
+    active: dev
+  # 文件上传
+  servlet:
+    multipart:
+      # 单个文件大小
+      max-file-size: 10MB
+      # 设置总上传的文件大小
+      max-request-size: 20MB
+  # 服务模块
+  devtools:
+    restart:
+      # 热部署开关
+      enabled: true
+  # 与vue整合部署使用
+  thymeleaf:
+    # 将系统模板放置到最前面 否则会与 springboot-admin 页面冲突
+    template-resolver-order: 1
+  jackson:
+    # 日期格式化
+    date-format: yyyy-MM-dd HH:mm:ss
+    serialization:
+      # 格式化输出
+      indent_output: false
+      # 忽略无法转换的对象
+      fail_on_empty_beans: false
+    deserialization:
+      # 允许对象忽略json中不存在的属性
+      fail_on_unknown_properties: false
+
 captcha:
   # 页面 <参数设置> 可开启关闭 验证码校验
   # 验证码类型 math 数组计算 char 字符验证
@@ -28,7 +66,7 @@ server:
   port: 8090
   servlet:
     # 应用的访问路径
-    context-path: /
+    context-path: /api
   # undertow 配置
   undertow:
     # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
@@ -55,48 +93,11 @@ server:
 # 日志配置
 logging:
   level:
-    com.ruoyi: @logging.level@
+#    com.ruoyi: @logging.level@
+    com.ruoyi: debug
     org.springframework: warn
   config: classpath:logback.xml
 
-# Spring配置
-spring:
-  application:
-    name: ${ruoyi.name}
-  # 资源信息
-  messages:
-    # 国际化资源文件路径
-    basename: i18n/messages
-  profiles:
-    active: @profiles.active@
-  # 文件上传
-  servlet:
-    multipart:
-      # 单个文件大小
-      max-file-size: 10MB
-      # 设置总上传的文件大小
-      max-request-size: 20MB
-  # 服务模块
-  devtools:
-    restart:
-      # 热部署开关
-      enabled: true
-  # 与vue整合部署使用
-  thymeleaf:
-    # 将系统模板放置到最前面 否则会与 springboot-admin 页面冲突
-    template-resolver-order: 1
-  jackson:
-    # 日期格式化
-    date-format: yyyy-MM-dd HH:mm:ss
-    serialization:
-      # 格式化输出
-      indent_output: false
-      # 忽略无法转换的对象
-      fail_on_empty_beans: false
-    deserialization:
-      # 允许对象忽略json中不存在的属性
-      fail_on_unknown_properties: false
-
 # token配置
 token:
   # 令牌自定义标识
@@ -294,10 +295,10 @@ management:
     web:
       # Actuator 提供的 API 接口的根目录。默认为 /actuator
       base-path: /actuator
-      exposure:
-        # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
-        # 生产环境不建议放开所有 根据项目需求放开即可
-        include: @endpoints.include@
+#      exposure:
+#        # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
+#        # 生产环境不建议放开所有 根据项目需求放开即可
+#        include: @endpoints.include@
   endpoint:
     logfile:
       external-file: ./logs/sys-console.log