科技热由微科技重构而来。由于微科技采用PHP技术,而博主本人并不会PHP,对于博客的维护很不方便。由此决定进行重构。科技热则采用JAVA+VUE技术编写,博主本身会一点JAVA,对VUE也有一定的了解,便于后续对bug的修复。 介绍下这款博客源码,博客源码取自源码地址,大家有需要可以下载。采用组件包含如下: JDK 1.8 MySQL 5.5.0 Redis 6.0.5 Elasticsearch 7.9.2 这些都可以通过Docker容器进行安装,本章将重点介绍如何用源码进行安装重构。
一台已经装过docker的服务器,可以自行安装或者使用云服务商提供的服务器环境,本章采用的是由腾讯云提供的带有Docker环境的Centos 7服务器。
在安装环境前,请先检查Docker是否安装成功,并使用命令 docker version查看安装的docker版本。
docker network create --driver bridge selfnet
docker network list
docker search jdk
docker pull eclipse/centos_jdk8
docker images
docker run -di --name=java --network selfnet --network-alias java eclipse/centos_jdk8
docker ps -a
docker pull mysql:5.7
docker images
docker run -id --privileged=true \
-p 3306:3306 \
--name=mysql \
--network selfnet \
--network-alias mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7 \
--lower_case_table_names=1
docker pull redis:6.0.5
docker images
docker run --name redis -p 6379:6379 --network selfnet --network-alias redis -v
/root/docker/redis/data:/data -v /root/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d
redis:6.0.5 redis-server /etc/redis/redis.conf --appendonly yes
docker pull elasticsearch:7.6.2
docker images
mkdir -p /usr/local/elasticsearch/config
mkdir -p /usr/local/elasticsearch/data
echo "http.host: 0.0.0.0" >> /usr/local/elasticsearch/config/elasticsearch.yml
chmod -R 777 /usr/local/elasticsearch
chmod -R 777 /usr/local/elasticsearch/config
chmod -R 777 /usr/local/elasticsearch/data
chmod -R 777 /usr/local/elasticsearch/plugins
sysctl -w vm.max_map_count=262144
docker run --name elasticsearch -p 9200:9200\
--network selfnet \
--network-alias elasticsearch\
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
-v /usr/local/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2
docker pull nginx
docker ps -a
mkdir -p /usr/local/nginx/conf/conf.d
mkdir -p /usr/local/nginx/logs
mkdir -p /usr/local/nginx/www
chmod -R 777 /usr/local/nginx/conf/conf.d
chmod -R 777 /usr/local/nginx/logs
chmod -R 777 /usr/local/nginx/www
docker run -d --name nginx01 -p 80:80 nginx
docker cp nginx01:/etc/nginx/nginx.conf /usr/local/nginx/conf/
docker cp nginx01:etc/nginx/conf.d /usr/local/nginx/conf/
docker cp nginx01:/usr/share/nginx/html/ /usr/local/nginx/www/
docker cp nginx01:/var/log/nginx/ /usr/local/nginx/logs/
docker stop nginx01
docker rm -f nginx01
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /usr/share/nginx/html/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /qqcallback {
proxy_set_header Host $http_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_pass http://blog:8080/kj/oauth/callback/qq;
}
location /kj {
proxy_set_header Host $http_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_pass http://blog:8080/kj;
}
location /webSocket {
proxy_set_header Host $http_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_pass http://blog:8081/webSocket;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
docker run --name nginx -p 80:80 --network selfnet --network-alias nginx -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/www/:/usr/share/nginx/html/ -v /usr/local/nginx/logs/:/var/log/nginx/ -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d --privileged=true -d nginx
mkdir -p /usr/local/blog
chmod -R 777 /usr/local/blog
# 基础镜像
FROM java
# 设置时区
ENV TZ = Asia/Shanghai
# 拷贝jar包
ADD *.jar /app.jar
WORKDIR /usr/local/blog
# 入口
ENTRYPOINT ["java","-jar","/app.jar"]
cd /usr/local/blog
docker build -t blog .
docker run -it --privileged=true -d -p 8080:8080 --name blog --network selfnet --network-alias blog -v /usr/local/nginx/www/wwwroothttp://img.kejir.com/:/usr/local/nginx/www/wwwroot/admin/static/file -v /usr/local/blog_java/logs/:/usr/local/blog_java/logs/ blog