编写镜像文件
This commit is contained in:
69
.gitlab-ci.yml
Normal file
69
.gitlab-ci.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
image: harbor.fjy8018.top:8883/library/docker:19.03
|
||||
|
||||
variables:
|
||||
MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode -Dmaven.test.skip=true"
|
||||
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
|
||||
DOCKER_DRIVER: overlay
|
||||
DOCKER_HOST: tcp://localhost:2375
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
SPRING_PROFILES_ACTIVE: docker
|
||||
IMAGE_VERSION: "V2.9.13"
|
||||
DOCKER_REGISTRY_MIRROR: "https://clayphwh.mirror.aliyuncs.com"
|
||||
|
||||
stages:
|
||||
- test
|
||||
- package
|
||||
- review
|
||||
- deploy
|
||||
|
||||
maven-build:
|
||||
image: harbor.fjy8018.top:8883/library/maven:3-jdk-8
|
||||
stage: test
|
||||
retry: 2
|
||||
script:
|
||||
- mvn $MAVEN_CLI_OPTS clean package -U -B -T 2C
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- target/*.jar
|
||||
|
||||
maven-scan:
|
||||
stage: test
|
||||
retry: 2
|
||||
image: harbor.fjy8018.top:8883/library/maven:3-jdk-8
|
||||
script:
|
||||
- mvn $MAVEN_CLI_OPTS verify sonar:sonar
|
||||
|
||||
maven-deploy:
|
||||
stage: deploy
|
||||
retry: 2
|
||||
image: harbor.fjy8018.top:8883/library/maven:3-jdk-8
|
||||
script:
|
||||
- mvn $MAVEN_CLI_OPTS deploy
|
||||
|
||||
|
||||
docker-harbor-build:
|
||||
stage: package
|
||||
retry: 2
|
||||
image:
|
||||
name: harbor.fjy8018.top:8883/google_container/kaniko-executor:debug
|
||||
entrypoint: [""]
|
||||
script:
|
||||
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$IMAGE_VERSION
|
||||
|
||||
deploy_live:
|
||||
image: harbor.fjy8018.top:8883/offical/kubectl:v1.14.0
|
||||
stage: deploy
|
||||
retry: 2
|
||||
environment:
|
||||
name: prod
|
||||
url: https://cms.fjy8018.xin
|
||||
script:
|
||||
- kubectl version
|
||||
- kubectl get pods -n hmdt
|
||||
- cd manifests/
|
||||
- sed -i "s/__IMAGE_VERSION_SLUG__/${IMAGE_VERSION}/" deployment.yaml
|
||||
- kubectl apply -f deployment.yaml
|
||||
# - kubectl rollout status -f deployment.yaml
|
||||
- kubectl get pods -n hmdt
|
||||
11
Dockerfile
Normal file
11
Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
||||
FROM harbor.fjy8018.top:8883/library/openjdk:8-jre
|
||||
MAINTAINER fjy8018 fjy8018@gmail.com
|
||||
|
||||
COPY target/spring-V2.9.13.jar.jar /cms-springboot.jar
|
||||
# 设置时区,默认为UTC
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
RUN echo 'Asia/Shanghai' > /etc/timezone
|
||||
|
||||
ENTRYPOINT ["java","-jar","/cms-springboot.jar","--spring.profiles.active=k8s"]
|
||||
|
||||
EXPOSE 8080
|
||||
52
pom.xml
52
pom.xml
@@ -5,7 +5,7 @@
|
||||
|
||||
<groupId>com.fjy</groupId>
|
||||
<artifactId>spring</artifactId>
|
||||
<version>V2.9.12</version>
|
||||
<version>V2.9.13</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>spring</name>
|
||||
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.0.0.RC2</version>
|
||||
<version>2.0.0.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
<skipTests>true</skipTests>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
@@ -44,7 +45,6 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
@@ -73,6 +73,12 @@
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
<!--https://github.com/osiegmar/logback-gelf-->
|
||||
<dependency>
|
||||
<groupId>de.siegmar</groupId>
|
||||
<artifactId>logback-gelf</artifactId>
|
||||
<version>2.1.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -84,44 +90,4 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spring-snapshots</id>
|
||||
<name>Spring Snapshots</name>
|
||||
<url>https://repo.spring.io/snapshot</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>spring-milestones</id>
|
||||
<name>Spring Milestones</name>
|
||||
<url>https://repo.spring.io/milestone</url>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>spring-snapshots</id>
|
||||
<name>Spring Snapshots</name>
|
||||
<url>https://repo.spring.io/snapshot</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>spring-milestones</id>
|
||||
<name>Spring Milestones</name>
|
||||
<url>https://repo.spring.io/milestone</url>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
|
||||
|
||||
</project>
|
||||
|
||||
39
src/main/resources/application-k8s.yml
Normal file
39
src/main/resources/application-k8s.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
#运行环境配置文件
|
||||
server:
|
||||
servlet:
|
||||
context-path: /cms
|
||||
session:
|
||||
timeout: 1440s
|
||||
port: 8080
|
||||
tomcat:
|
||||
remote-ip-header: x-forwarded-for
|
||||
protocol-header: x-forwarded-proto
|
||||
port-header: X-Forwarded-Port
|
||||
use-forward-headers: true
|
||||
serverproperties:
|
||||
port_num: 8080
|
||||
filePath: /www/cmsfile/
|
||||
spring:
|
||||
thymeleaf:
|
||||
prefix: classpath:/templates/
|
||||
cache: true
|
||||
check-template: true
|
||||
|
||||
datasource:
|
||||
driver-class-name: com.mysql.jdbc.Driver
|
||||
url: jdbc:mysql://192.168.1.25/db_imis2?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
|
||||
username: imis2
|
||||
password: 2015imis2
|
||||
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 100Mb
|
||||
max-request-size: 100Mb
|
||||
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: update
|
||||
show-sql: false
|
||||
#resources:
|
||||
# static-locations: classpath:/templates/
|
||||
debug: false
|
||||
@@ -1,60 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<configuration>
|
||||
|
||||
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<layout class="ch.qos.logback.classic.PatternLayout">
|
||||
<pattern>
|
||||
%d - %msg%n
|
||||
</pattern>
|
||||
</layout>
|
||||
<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
|
||||
<graylogHost>192.168.1.27</graylogHost>
|
||||
<graylogPort>12201</graylogPort>
|
||||
<maxChunkSize>508</maxChunkSize>
|
||||
<useCompression>true</useCompression>
|
||||
<encoder class="de.siegmar.logbackgelf.GelfEncoder">
|
||||
<includeRawMessage>false</includeRawMessage>
|
||||
<includeMarker>true</includeMarker>
|
||||
<includeMdcData>true</includeMdcData>
|
||||
<includeCallerData>false</includeCallerData>
|
||||
<includeRootCauseData>false</includeRootCauseData>
|
||||
<!--显示日志级别名称,默认为数字-->
|
||||
<includeLevelName>true</includeLevelName>
|
||||
<shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
|
||||
<pattern>%m%nopex</pattern>
|
||||
</shortPatternLayout>
|
||||
<fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
|
||||
<pattern>%m%n</pattern>
|
||||
</fullPatternLayout>
|
||||
<!--配置应用名称-->
|
||||
<staticField>app_name:cms</staticField>
|
||||
<staticField>os_arch:${os.arch}</staticField>
|
||||
<staticField>os_name:${os.name}</staticField>
|
||||
<staticField>os_version:${os.version}</staticField>
|
||||
</encoder>
|
||||
</appender>
|
||||
<!--每天输出一个文件,使用RollingFileAppender滚动输出策略-->
|
||||
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!--根据范围仅保留info的日志-->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>DENY</onMatch>
|
||||
<onMismatch>ACCEPT</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>
|
||||
%d - %msg%n
|
||||
</pattern>
|
||||
<charset>utf8</charset>
|
||||
</encoder>
|
||||
<!--滚动策略-->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!--路径文件名,文件名包含时间-->
|
||||
<fileNamePattern>F:\JAVA Workspace\Temp\log\%d\info.%d.log</fileNamePattern>
|
||||
<!--<fileNamePattern>/www/cmsfile/%d/info.%d.log</fileNamePattern>-->
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!--根据范围过滤ERROR等级以下的日志-->
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>ERROR</level>
|
||||
</filter>
|
||||
<!-- 彩色日志 -->
|
||||
<!-- 彩色日志依赖的渲染类 -->
|
||||
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
|
||||
<conversionRule conversionWord="wex"
|
||||
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
|
||||
<conversionRule conversionWord="wEx"
|
||||
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
|
||||
<!-- 彩色日志格式 -->
|
||||
<property name="CONSOLE_LOG_PATTERN"
|
||||
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
|
||||
<!-- Console 输出设置 -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>
|
||||
%d - %msg%n
|
||||
</pattern>
|
||||
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
||||
<charset>utf8</charset>
|
||||
</encoder>
|
||||
<!--滚动策略-->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!--路径文件名,文件名包含时间-->
|
||||
<fileNamePattern>F:\JAVA Workspace\Temp\log\error.%d.log</fileNamePattern>
|
||||
<!--<fileNamePattern>/www/cmsfile/%d/error.%d.log</fileNamePattern>-->
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="consoleLog"/>
|
||||
<appender-ref ref="fileInfoLog"/>
|
||||
<appender-ref ref="fileErrorLog"/>
|
||||
<!-- 控制台输出 -->
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="GELF"/>
|
||||
</root>
|
||||
|
||||
|
||||
|
||||
</configuration>
|
||||
60
src/main/resources/logback-spring.xml.bak
Normal file
60
src/main/resources/logback-spring.xml.bak
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<configuration>
|
||||
|
||||
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<layout class="ch.qos.logback.classic.PatternLayout">
|
||||
<pattern>
|
||||
%d - %msg%n
|
||||
</pattern>
|
||||
</layout>
|
||||
</appender>
|
||||
<!--每天输出一个文件,使用RollingFileAppender滚动输出策略-->
|
||||
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!--根据范围仅保留info的日志-->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>DENY</onMatch>
|
||||
<onMismatch>ACCEPT</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>
|
||||
%d - %msg%n
|
||||
</pattern>
|
||||
<charset>utf8</charset>
|
||||
</encoder>
|
||||
<!--滚动策略-->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!--路径文件名,文件名包含时间-->
|
||||
<fileNamePattern>F:\JAVA Workspace\Temp\log\%d\info.%d.log</fileNamePattern>
|
||||
<!--<fileNamePattern>/www/cmsfile/%d/info.%d.log</fileNamePattern>-->
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!--根据范围过滤ERROR等级以下的日志-->
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>ERROR</level>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>
|
||||
%d - %msg%n
|
||||
</pattern>
|
||||
<charset>utf8</charset>
|
||||
</encoder>
|
||||
<!--滚动策略-->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!--路径文件名,文件名包含时间-->
|
||||
<fileNamePattern>F:\JAVA Workspace\Temp\log\error.%d.log</fileNamePattern>
|
||||
<!--<fileNamePattern>/www/cmsfile/%d/error.%d.log</fileNamePattern>-->
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="consoleLog"/>
|
||||
<appender-ref ref="fileInfoLog"/>
|
||||
<appender-ref ref="fileErrorLog"/>
|
||||
</root>
|
||||
|
||||
|
||||
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user