Docker FFmpeg

Dockerfile FROM ubuntu:22.04 RUN apt-get update && apt-get install -y ca-certificates RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse" >> /etc/apt/sources.list RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse" >> /etc/apt/sources.list RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse" >> /etc/apt/sources.list RUN echo "deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse" >> /etc/apt/sources.list RUN apt-get update && apt-get install -y wget java-common RUN wget https://corretto.aws/downloads/resources/17.0.6.10.1/java-17-amazon-corretto-jdk_17.0.6.10-1_amd64.deb RUN dpkg --install java-17-amazon-corretto-jdk_17.0.6.10-1_amd64.deb RUN apt-get install -y ffmpeg Build sudo docker build -t corretto17-ffmpeg:1.0 . ...

May 11, 2023 · 1 min · Steven Jiang

Swagger3

June 15, 2021 · 0 min · Steven Jiang

Logback Spring

logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <property name="LOG_HOME" value="log"/> <!-- 彩色日志依赖的渲染类 --> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/> <!-- 彩色日志格式 --> <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }) [%t]{magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex"/> <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/> <!--输出到控制台--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </encoder> </appender> <!--输出到文件--> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/logback.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!--info 级别的日志--> <!-- 按照每天生成日志文件 --> <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <fileNamePattern>${LOG_HOME}/info.%d{yyyy-MM-dd}.log</fileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> </rollingPolicy> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!--WARN 级别的日志--> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/warn.%d{yyyy-MM-dd}.log</fileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> </appender> <!--ERROR 级别的日志--> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.log</fileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> </appender> <!-- 测试环境+开发环境. 多个使用逗号隔开. --> <springProfile name="dev,test"> <root level="info"> <appender-ref ref="console"/> <appender-ref ref="file"/> </root> <logger name="com.szht" level="debug"/> </springProfile> <!-- 生产环境. --> <springProfile name="prod"> <root level="info"> <appender-ref ref="INFO"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </springProfile> </configuration>

June 15, 2021 · 1 min · Steven Jiang

SpringBoot

June 15, 2021 · 0 min · Steven Jiang

SpringBoot Grade

build.gradle templates plugins { id 'org.springframework.boot' version '2.5.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { maven {url 'https://maven.aliyun.com/repository/public'} maven { url 'http://192.168.10.204:8081/repository/maven-public/' allowInsecureProtocol true } mavenCentral() } dependencies { // jpa implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // swagger mplementation 'io.springfox:springfox-boot-starter:3.0.0' // webservice implementation 'org.springframework.boot:spring-boot-starter-web-services' // druid implementation 'com.alibaba:druid-spring-boot-starter:1.2.5' // mybatis and plus implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4' implementation 'com.baomidou:mybatis-plus-boot-starter:3.4.2' // mybatis dynamic DataSource 多数据源 implementation 'com.baomidou:dynamic-datasource-spring-boot-starter:3.3.2' // rabbitmq implementation 'org.springframework.boot:spring-boot-starter-amqp' testImplementation 'org.springframework.amqp:spring-rabbit-test' // jsoup java spider 爬虫框架 implementation 'org.jsoup:jsoup:1.13.1' // spring mail implementation 'org.springframework.boot:spring-boot-starter-mail' // activemq implementation 'org.springframework.boot:spring-boot-starter-activemq' // activemq next implementation 'org.springframework.boot:spring-boot-starter-artemis' // redis implementation 'org.springframework.boot:spring-boot-starter-data-redis' // thymeleaf implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // web implementation 'org.springframework.boot:spring-boot-starter-web' // web without tomcat and with undertow implementation ('org.springframework.boot:spring-boot-starter-web'){ exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' } implementation 'org.springframework.boot:spring-boot-starter-undertow' // common lang3 implementation 'org.apache.commons:commons-lang3:3.12.0' // common codec implementation 'commons-codec:commons-codec:1.15' // fastjson implementation 'com.alibaba:fastjson:1.2.76' // ok http implementation 'com.squareup.okhttp3:okhttp:4.9.1' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' // oracle implementation 'com.oracle.database.nls:orai18n:21.1.0.0' runtimeOnly 'com.oracle.database.jdbc:ojdbc8' // mysql runtimeOnly 'mysql:mysql-connector-java' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } test { useJUnitPlatform() }

June 15, 2021 · 1 min · Steven Jiang

Charles

Charles监听localhost请求 访问http://localhost.charlesproxy.com:port 浏览器代理,监听端口8888

April 2, 2021 · 1 min · Steven Jiang

Cas

install docker run --rm -p 8080:8080 apereo/cas-initializr:6.3.0 curl http://localhost:8080/starter.tgz -o cas.tgz tar -zxvf cas.tgz chmod +x docker-build.sh chmod +x docker-run.sh ./docker-build.sh

March 25, 2021 · 1 min · Steven Jiang

Wechat

Install # install wepy version 1.X cnpm install wepy-cli -g error Q:regeneratorRuntime.mark undefined A: 关掉小程序开发工具ES6转ES5

March 25, 2021 · 1 min · Steven Jiang

nodeJS

nvm setting nvm ls nvm ls available nvm install {version} nvm use {version} npm setting npm config set registry https://registry.npm.taobao.org npm config set sass_binary_site "https://npm.taobao.org/mirrors/node-sass" npm config list cnpm settting npm install -g cnpm --registry=https://registry.npm.taobao.org error MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 “4.0”。 npm install --msvs_version 2015

March 25, 2021 · 1 min · Steven Jiang

Git

cmd # 下载子模块代码 git submodule update --init --recursive error Git报错解决:OpenSSL SSL_read: Connection was reset, errno 10054 错误解决 git config --global http.sslVerify "false"

March 25, 2021 · 1 min · Steven Jiang