docker-nginx

宿主机创建目录
/apnode/data/webroot,
/apnode/data/weblogs,
/apnode/data/nginx.conf

docker nginx 配置文件


####################################	
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") { set $year $1; set $month $2; set $day $3; }
####################################	
access_log ./web_log/temphost.access.$year-$month-$day.log format_main;  		
error_log  ./web_log/temphost.error.log;
####################################

worker_processes 1;
events {
	worker_connections 1024;
}
http {
	include mime.types;
	default_type application/octet-stream;
	sendfile on;
	#tcp_nopush on;
	#keepalive_timeout 0;
	keepalive_timeout 65;
	#gzip on;
	server {
		listen 80;
		# 绑定主机名 [localhost]。
		server_name localhost;
		#root目录
		root /apnode/data/webroot;
		#关闭 favicon.ico 日志
		location = /favicon.ico { access_log off; log_not_found off; }
		# 客户端Body大小限制(文件上传大小限制配置)
		client_max_body_size 50m;
		# 指定字符集为 UTF-8
		charset utf-8;
		# Vue路由模式为history需添加的配置
		location / {
		# root /apnode/data/webroot;
		index index.html index.php;
		# 默认文件搜索顺序
		try_files $uri $uri/ /index.php?$query_string;
		}
		# 获取真实IP以及Websocket需添加的配置
		# proxy_set_header Host $host;
		# proxy_set_header X-Real-IP $remote_addr;
		# proxy_set_header REMOTE-HOST $remote_addr;
		# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		# proxy_set_header Upgrade $http_upgrade;
		# proxy_set_header Connection "upgrade";
		# error_page 500 502 503 504 404 /50x.html;
		# location = /50x.html {
		# root html;
		# }
		# 将 [404] 错误交给 [/index.php] 处理,表示由 Laravel 渲染美观的错误页面。
		error_page 404 /index.php;		
		#php环境安装完毕之后开启这段配置
		location ~ \.php$ {
		# 注意这里的IP和端口,用Docker实例IP端口默认应为9000,可选sock
		fastcgi_pass 192.168.56.2:9003;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		#fastcgi_param SCRIPT_FILENAME /apnode/data/webroot/$fastcgi_script_name;
		include fastcgi_params;
		}
		# 除符合正则表达式 [/\.(?!well-known).*] 之外的 URI,全部拒绝访问
		# 也就是说,拒绝公开以 [.] 开头的目录,[.well-known] 除外
		location ~ /\.(?!well-known).* {
			deny all;
		}
			
	}
}

获取所有容器IP,fastcgi_pass 可选对应IP
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

docker 运行nginx
docker run -it -d --name vbox-nginx -p 80:80 -v /apnode/data/nginx.conf:/etc/nginx/nginx.conf -v /apnode/data:/apnode/data nginx:stable-alpine

###
$time_iso8601 生成格式:2013-09-25T15:16:35+08:00
$time_local 生成格式: 25/Sep/2013:15:12:13 +0800

java 学习参考

转载一:
Java面试题及答案整理(2021最新版)
《Java 最常见的 208 道面试题》的答案已经全部更新完了,
些答案是团长自己总结的,也有些答案是在网上搜集整理的。
这些答案难免会存在一些错误,仅供大家参考。如果发现错误还望大家多多包涵,不吝赐教,谢谢~

团长特意整理出这个目录,方便大家平时复习和收藏哈。希望正在准备面试的朋友们能顺顺利利找到自己心仪的工作,加油!!!

1、Java 最常见的 208 道面试题(第一模块答案):https://urlify.cn/JVFVVf
2、Java 最常见的 208 道面试题(第二模块答案):https://urlify.cn/qMzy6j
3、Java 最常见的 208 道面试题(第三模块答案):https://urlify.cn/BBniii
4、Java 最常见的 208 道面试题(第四模块和第五模块答案):https://urlify.cn/2iaeUv
5、Java 最常见的 208 道面试题:第六模块答案:https://urlify.cn/vIJVrm
6、Java 最常见的 208 道面试题(第七模块答案):https://urlify.cn/nUfM7n
7、Java 最常见的 208 道面试题(第八模块答案):https://urlify.cn/e2quIb
8、Java 最常见的 208 道面试题(第九模块和第十模块答案):https://urlify.cn/vmqUVb
9、Java 最常见的 208 道面试题(第十一模块答案):https://urlify.cn/a2e6zu
10、Java 最常见的 208 道面试题(第十二模块答案):https://urlify.cn/yuuMZr
11、Java 最常见的 208 道面试题(第十三模块答案):https://urlify.cn/NvIjM3
12、Java 最常见的 208 道面试题(第十四模块答案):https://urlify.cn/6NZZZb
13、Java 最常见的 208 道面试题(第十五模块答案):https://urlify.cn/ANvUFv/
14、Java 最常见的 208 道面试题(第十六模块答案):https://urlify.cn/viyu2y
15、Java 最常见的 208 道面试题(第十七模块答案):https://urlify.cn/jyYBn2/
16、Java 最常见的 208 道面试题(第十八模块答案):https://urlify.cn/jaE3ia
17、Java 最常见的 208 道面试题(第十九模块答案):https://urlify.cn/3iARve
好的东西要和朋友一起分享,记得将这篇目录分享给你身边正在准备面试的朋友哈~

参考:
https://www.fangzhipeng.com/javainterview.html

msvc

官方下载地址: https://support.microsoft.com/zh-cn/topic/最新支持的-visual-c-下载-2647da03-1eea-4433-9aff-95f26a218cc0

Visual Studio各个版本对应关系

名字版本号简称全称
msvc70VC7.0VS2002Microsoft Visual Studio 2002
msvc71VC7.1VS2003Microsoft Visual Studio 2003
msvc80VC8.0VS2005Microsoft Visual Studio 2005
msvc90VC9.0VS2008Microsoft Visual Studio 2008
VC10.0VS2010Microsoft Visual Studio 2010
VC11.0VS2012Microsoft Visual Studio 2012
VC12.0VS2013Microsoft Visual Studio 2013
VC13.0VS2014Microsoft Visual Studio 2014
VC14.0VS2015Microsoft Visual Studio 2015
VC15.0VS2017Microsoft Visual Studio 2017
VC16.0VS2019Microsoft Visual Studio 2019
参考2

时间名称内部版本C 类语言Basic 类语言Java 类语言其它语言.NET Framework.NET Core_MSC_VER备注
2021.02Visual Studio 201916.8Visual C# 2019

Visual C++ 2019

Visual Basic 2019Visual F# 20193.5
4.5.2
4.6 4.6.1 4.6.24.7 4.7.1 4.7.2
4.8
1.0 1.1 2.0 3.01924最低支持 Win7 SP1
2018.11Visual Studio 201715.9Visual C# 2017

Visual C++ 2017

Visual Basic 2017Visual F# 20173.5
4.0
4.5 4.5.1 4.5.24.6 4.6.1 4.6.2
4.7 4.7.1 4.7.2
1.0 1.1 2.01916基于
.NET Framework 4.6最低支持
Win7 SP1不再支持
WinXP
2015.07Visual Studio 2015 RTM14.0Visual C# 2015

Visual C++ 2015

Visual Basic 2015Visual F# 20152.0 3.0 3.5

4.0
4.5 4.5.1 4.5.2
4.6

1900基于
.NET Framework 4.5.2RTMRelease to Manufacturing
2014.11Visual Studio 201514.0Visual C# 2015

Visual C++ 2015

Visual Basic 2015Visual F# 20152.0 3.0 3.5

4.0
4.5 4.5.1 4.5.2
4.6

1900首次发布

VisualStudio Community

2013.10Visual Studio 201312.0Visual C# 2013

Visual C++ 2013

Visual Basic 2013Visual F# 20132.0 3.0 3.5

4.0 4.5 4.5.1 4.5.2

1800
2012.08Visual Studio 201211.0Visual C# 2012

Visual C++ 2012

Visual Basic 2012Visual F# 20122.0 3.0 3.5 4.0 4.51700
2010.04Visual Studio 201010.0Visual C# 2010

Visual C++ 2010

Visual Basic 2010Visual F#2.0 3.0 3.5 4.01600添加 F#
2007.11Visual Studio 20089.0Visual C# 2008

Visual C++ 2008

Visual Basic 20082.0 3.0 3.51500移除 J#
2005.11Visual Studio 20058.0Visual C# 2005

Visual C++ 2005

Visual Basic 2005Visual J# 2.02.01400.NET从名称中移除
2003.04Visual Studio .NET 20037.1Visual C# 2003

Visual C++ 2003

Visual Basic 2003Visual J# 1.11.11310
2002.02Visual Studio .NET 20027.0Visual C# 2002

Visual C++ 2002

Visual Basic 2002Visual J# 1.01.01300以 J# 取代 J++

移除 FoxPro 与 J++

1998.06Visual Studio 6.06.0Visual C++ 6.0Visual Basic 6.0Visual J++ 6.0Visual FoxPro 6.01200
1997.02Visual Studio 975.0Visual C++ 5.0Visual Basic 5.0Visual J++ 1.1Visual FoxPro 5.01100
1995.04Visual Studio4.0Visual C++ 4.0Visual Basic 3.0Visual FoxPro 4.0初版

参考:
http://dt.digitser.cn/zh-CN/download/msvcpp_redist.html

WebGIS 系统

参考: https://blog.csdn.net/shyjhyp11/article/details/96350149
参考: https://blog.csdn.net/kaizqn/article/details/34140081

参考:
GIS解决方案(1):geoserver+openlayers+mysql设计思想
https://blog.csdn.net/menergy/article/details/10277809

— MapInfo
mapinfo12.5, ​.tab图层转换为.shp图层, 由原始的.wor地图得到最初的.mxd地图,即.shp图层集
http://www.ddooo.com/softdown/77374.htm

— ArcGIS Server,mxd,

— udig, shp图层及其样式编辑
http://udig.refractions.net/download/

docker-java

===============
常见错误,应用无法显示验证码
java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion 验证码无法显示
在Docker运行
Alpine 系统:

sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
apk add fontconfig
apk add --update ttf-dejavu
fc-cache --force

===============
➜ 方案2:

项目采用docker进行构建运行,如果每次都需要重新安装此组件,很耗时。

采取另一种措施:重新构建一个基础镜像(安装好依赖,用于支持验证码功能)。

后续其他镜像基于此基础镜像做构建。

参考Dockerfile如下:

vim Dockerfile

Dockerfile内容如下:

FROM openjdk:8-alpine
#ADD ./test.jar /opt/App/test.jar
#拷贝字体文件
#COPY ./simhei.ttf /usr/share/fonts/simhei.ttf
#设置字符集
ENV LANG en_US.UTF-8
# RUN apk --update add font-config ttf-dejavu
# RUN rum -rf /var/cache/apk/*
RUN sed -i '3s/#//' /etc/apk/repositories
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories



RUN apk add --update --no-cache ttf-dejavu fontconfig && rm -rf /var/cache/apk/*
EXPOSE 8080
ENTRYPOINT ["java", "-jar"]
CMD ["test.jar"]

 

 

当前目录构建:

docker build -t myjava .

后续业务镜像基于新的基础镜像构建:

# FROM openjdk:8-jdk-alpine
FROM myjava
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+08","-jar","/app.jar"]
EXPOSE 8080

===============

#Dockerfile
From openjdk:13-jdk-alpine
#设置字符集
ENV LANG en_US.UTF-8
# RUN apk --update add font-config ttf-dejavu
# RUN rum -rf /var/cache/apk/*
RUN sed -i '3s/#//' /etc/apk/repositories
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories 
RUN apk add --update --no-cache ttf-dejavu fontconfig && rm -rf /var/cache/apk/*
RUN apk add tzdata  && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime    && echo "Asia/Shanghai" > /etc/timezone 
CMD ["/bin/sh"]

#编译模板
docker build -t myjava:11 -f ./Dockerfile .

#运行服务
#docker stop api
#docker rm api
docker run -itd --restart=unless-stopped --name api -v $(pwd):/app  -p 8081:8081 apnode/apnode:jdk8 java -jar /app/api.jar --spring.profiles.active=prod --server.port=8081

参考:
https://markix.blog.csdn.net/article/details/106470920
https://blog.csdn.net/jeikerxiao/article/details/109334619