docker自建镜像
> 记录下,总是忘记
编写dockerfile样例
```
FROM mirrors.xxx.com/ci/alpine_linux:latest
# Install jdk21
WORKDIR /tmp/jdk21
ADD jdk_21.tar.gz /usr/local/java
RUN ln -s /usr/local/java/jdk_21 /usr/local/java/jdk
ENV JAVA_HOME /usr/local/java/jdk
ENV PATH ${JAVA_HOME}/bin:$PATH
# install maven
RUN wget -q https://mirrors.xxx.com/apache-maven-3-bin.zip && \
unzip -qd /opt/ apache-maven-3-bin.zip
WORKDIR /tmp
```
1.使用dockerfile构建镜像
```
docker build -t xxxx -f ./Dockerfile .
```
2.打tag,标记镜像
```
## doc...
2024-02-02 12:51
spring中使用jpa操作mysql和mongodb读写ZonedDateTime字段
> LocalDateTime表示本地日期和时间,要表示一个带时区的日期和时间,我们就需要ZonedDateTime。可以简单地把ZonedDateTime理解成LocalDateTime加ZoneId。
在spring使用jpa进行crud操作实体的时候如果用到了ZonedDateTime字段缺少转换类会报错,使用jackson进行json序列化的时候存在ZonedDateTime缺少注册时间模块也会报错。
1.先准备好读写转换类
写转换类:
```
import org.springframework.data.convert.WritingConverter;
import org.springframework.core.convert.converter.Converter;
import java.time.LocalDateTime;
import java.time.ZonedDateTime;
@WritingConverter
public class ZonedDateTimeToLocalDateTimeWriteConverter implements Con...
2024-01-23 15:02
elasticsearch的geo_point经纬度类型顺序问题
> 在es里设置geo_point地理坐标经纬度类型会遇到很常见的问题,latitude 和 longitude 的值到底谁在前谁在后?
为某索引添加geo_point类型
```
PUT /xxx_index/_mapping
{
"properties": {
"geo_location": {
"type": "geo_point"
}
}
}
```
### longitude:经度。
### latitude:纬度。
在es中使用geo_point表示有6种方式:
1. Geopoint 表示为GeoJSON格式的对象,带有type和coordinates
2. 地理点表示 Well-Known Text 经纬度写法,格式如下:"POINT(lon lat)"
3. 地理点表示为一个对象,带有lat和lon,不需要考虑顺序问题。
4. 地理点表示为数组,格式为:[lon, lat]
5. 地理点表示为字符串,格式为:"lat,lon"
6. 地理点表示为 geohash,Geohashes是纬度和经度的...
2023-12-26 12:27
springboot3.2.x在jdk21开启虚拟线程
> 2023-09-19,jdk21正式发布,此版本是继jdk17后的长期支持版本(LTS),jdk21正式开始支持虚拟线程。
2023-11-23,springboot3.2.0正式发布,3.2版本正式支持虚拟线程。
springboot3.2.0支持虚拟线程需要修改默认配置:
```
spring.threads.virtual.enabled=true
```
当启用虚拟线程时,包括但不限于Tomcat和Jetty将使用虚拟线程来处理请求。这意味着处理web请求将在虚拟线程上运行。
`spring.threads.virtual.enabled`这个值默认是false,可以看源码里spring-configuration-metadata.json对这个值的描述信息:
```
{
"name": "spring.threads.virtual.enabled",
"type": "java.lang.Boolean",
"description": "Whether to use virtual threads.",
"defaultValue": false
...
2023-12-13 03:28
docker使用AlpineLinux安装openjdk21问题
> 近期发布了openjdk21,JDK21也将成为大多数供应商的长期支持 (LTS) 版本,截止到2023年11月29号,镜像:arm64v8/alpine:latest,目前处于Alpine 3.18,包管理库里是没有openjdk21,因为Alpine 3.19.0才有openjdk21的正式支持。详情可以看: https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.19.0
```
fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/main/aarch64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/community/aarch64/APKINDEX.tar.gz
ERROR: unable to select packages:
openjdk21 (no such package):
required by: world[openjdk21]
```
通过 https...
2023-11-29 05:39