Merge branch 'master' of gitee.com:alexzcz/alex-api
This commit is contained in:
33
Jenkinsfile
vendored
Normal file
33
Jenkinsfile
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
pipeline {
|
||||
agent any
|
||||
environment {
|
||||
SSH_CREDENTIALS_ID = 'alex-ssh-key'
|
||||
REMOTE_HOST = '117.72.202.202'
|
||||
REMOTE_USER = 'alex'
|
||||
REMOTE_DIR = '/home/alex/alex-api'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh 'mvn clean package -DskipTests'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy') {
|
||||
steps {
|
||||
sshagent([env.SSH_CREDENTIALS_ID]) {
|
||||
sh """
|
||||
scp target/alex-api-0.0.1-SNAPSHOT.jar ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/app/
|
||||
ssh ${REMOTE_USER}@${REMOTE_HOST} '
|
||||
cd ${REMOTE_DIR} &&
|
||||
docker compose down &&
|
||||
docker compose up -d --build
|
||||
'
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
12
app/Dockerfile
Executable file
12
app/Dockerfile
Executable file
@ -0,0 +1,12 @@
|
||||
# 使用轻量级 OpenJDK 运行环境作为基础镜像
|
||||
FROM openjdk:8-jdk
|
||||
# 作者信息(可选)
|
||||
LABEL maintainer="2604434353@qq.com"
|
||||
# 创建工作目录
|
||||
WORKDIR /app
|
||||
# 复制 jar 包到容器中
|
||||
COPY alex-api-0.0.1-SNAPSHOT.jar app.jar
|
||||
# 开放容器端口
|
||||
EXPOSE 8888
|
||||
# 启动命令
|
||||
ENTRYPOINT ["java", "-jar", "app.jar"]
|
BIN
app/alex-api-0.0.1-SNAPSHOT.jar
Executable file
BIN
app/alex-api-0.0.1-SNAPSHOT.jar
Executable file
Binary file not shown.
15
bin/post-steps.sh
Executable file
15
bin/post-steps.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
PORT=8888
|
||||
JAR_PATH="/home/alex/alex-api/app/alex-api-0.0.1-SNAPSHOT.jar"
|
||||
LOG_PATH="/home/alex/alex-api/logs/alex-api.log"
|
||||
|
||||
# 检测端口是否被占用
|
||||
if netstat -tuln | grep -q ":$PORT"; then
|
||||
echo "Port $PORT is already in use. Not starting application."
|
||||
exit 0
|
||||
else
|
||||
echo "Port $PORT is free. Starting application..."
|
||||
nohup java -jar "$JAR_PATH" > "$LOG_PATH" 2>&1 &
|
||||
echo "Application started with PID $!"
|
||||
fi
|
13
bin/pre-steps.sh
Executable file
13
bin/pre-steps.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
pid=$(ps -ef | grep -w java | grep "alex-api-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}')
|
||||
|
||||
echo "Found pid: $pid"
|
||||
|
||||
if [ -z "$pid" ]; then
|
||||
echo "Java application not running."
|
||||
else
|
||||
sudo kill -9 $pid
|
||||
echo "Java application (pid: $pid) stopping..."
|
||||
sleep 2
|
||||
fi
|
70
docker-compose.yml
Executable file
70
docker-compose.yml
Executable file
@ -0,0 +1,70 @@
|
||||
name: alex-api-docker
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:8.0
|
||||
container_name: mysql
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ALEXzcz123456
|
||||
MYSQL_DATABASE: test_alex
|
||||
MYSQL_USER: alex
|
||||
MYSQL_PASSWORD: ALEXzcz123456
|
||||
ports:
|
||||
- "3306:3306"
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
networks:
|
||||
- alex-bridge-network
|
||||
|
||||
redis:
|
||||
image: redis:6
|
||||
container_name: redis
|
||||
command: redis-server --requirepass "ALEXzcz123456"
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
networks:
|
||||
- alex-bridge-network
|
||||
|
||||
alex-api:
|
||||
build:
|
||||
context: /home/alex/alex-api/app
|
||||
dockerfile: Dockerfile
|
||||
image: alex-api-image
|
||||
container_name: alex-api
|
||||
restart: always
|
||||
depends_on:
|
||||
- mysql
|
||||
- redis
|
||||
ports:
|
||||
- "8888:8888"
|
||||
networks:
|
||||
- alex-bridge-network
|
||||
|
||||
nginx:
|
||||
image: nginx:latest
|
||||
container_name: nginx
|
||||
restart: always
|
||||
ports:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- /etc/nginx/conf.d/alex-ui.conf:/etc/nginx/conf.d/alex-ui.conf
|
||||
- /var/www/alex-ui:/var/www/alex-ui
|
||||
- /var/log/nginx:/var/log/nginx
|
||||
depends_on:
|
||||
- alex-api
|
||||
networks:
|
||||
- alex-bridge-network
|
||||
|
||||
# 声明命名数据卷
|
||||
volumes:
|
||||
mysql-data:
|
||||
external: true # 使用已有的 mysql-data 卷,不创建新卷
|
||||
redis-data:
|
||||
external: true
|
||||
|
||||
# 创建自定义网络
|
||||
networks:
|
||||
alex-bridge-network:
|
||||
driver: bridge
|
45
logs/alex-api.log
Normal file
45
logs/alex-api.log
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
. ____ _ __ _ _
|
||||
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
|
||||
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
|
||||
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
|
||||
' |____| .__|_| |_|_| |_\__, | / / / /
|
||||
=========|_|==============|___/=/_/_/_/
|
||||
:: Spring Boot :: (v2.6.13)
|
||||
|
||||
2025-07-15 09:34:11.450 INFO 2719370 --- [ main] com.ctgu.alexapi.AlexApiApplication : Starting AlexApiApplication using Java 17.0.15 on server with PID 2719370 (/home/alex/alex-api/app/alex-api-0.0.1-SNAPSHOT.jar started by alex in /home/alex)
|
||||
2025-07-15 09:34:11.452 INFO 2719370 --- [ main] com.ctgu.alexapi.AlexApiApplication : The following 1 profile is active: "dev"
|
||||
2025-07-15 09:34:12.544 INFO 2719370 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-07-15 09:34:12.547 INFO 2719370 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
|
||||
2025-07-15 09:34:12.590 INFO 2719370 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 20 ms. Found 0 Redis repository interfaces.
|
||||
2025-07-15 09:34:13.738 INFO 2719370 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8888 (http)
|
||||
2025-07-15 09:34:13.770 INFO 2719370 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
|
||||
2025-07-15 09:34:13.770 INFO 2719370 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.68]
|
||||
2025-07-15 09:34:13.950 INFO 2719370 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
|
||||
2025-07-15 09:34:13.950 INFO 2719370 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2362 ms
|
||||
_ _ |_ _ _|_. ___ _ | _
|
||||
| | |\/|_)(_| | |_\ |_)||_|_\
|
||||
/ |
|
||||
3.5.1
|
||||
2025-07-15 09:34:16.185 INFO 2719370 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8888 (http) with context path ''
|
||||
2025-07-15 09:34:16.204 INFO 2719370 --- [ main] com.ctgu.alexapi.AlexApiApplication : Started AlexApiApplication in 5.761 seconds (JVM running for 6.61)
|
||||
2025-07-15 09:45:02.685 INFO 2719370 --- [0.0-8888-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-07-15 09:45:02.686 INFO 2719370 --- [0.0-8888-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
|
||||
2025-07-15 09:45:02.687 INFO 2719370 --- [0.0-8888-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
|
||||
2025-07-15 09:45:02.907 INFO 2719370 --- [0.0-8888-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
|
||||
2025-07-15 09:45:03.268 INFO 2719370 --- [0.0-8888-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
|
||||
2025-07-15 10:55:24.202 INFO 2719370 --- [0.0-8888-exec-3] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
|
||||
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
|
||||
|
||||
java.lang.IllegalArgumentException: Invalid character found in method name [0x030x000x00/*0xe00x000x000x000x000x00Cookie: ]. HTTP method names must be tokens
|
||||
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:419) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar!/:na]
|
||||
at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
|
||||
|
Reference in New Issue
Block a user