今天写了个简单的springboot项目,用docker-compose把它部署到linux服务器
简单的引入springboot依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>chat</groupId>
<artifactId>chatgpt_boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>chatgpt_boot</name>
<description>use in chatgpt</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
再简单的写个接口
@RestController
@RequestMapping("v1")
public class MessageController {
@Autowired
private WxConfig wxConfig;
@GetMapping("chat/{text}")
public String chat(@PathVariable String text) throws Exception {
System.out.println(wxConfig.getId());
return text;
}
}
然后打包,改个名
jar包丢进服务器,和Dockerfile同一目录
Dockerfile代码,修改好对应配置
FROM pig4cloud/java:8-jre
ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir -p /chatgpt
WORKDIR /chatgpt
EXPOSE 9201
ADD chatgpt_boot.jar ./
CMD sleep 10;java $JAVA_OPTS -jar chatgpt_boot.jar
在上级目录配置yml文件
data-chatgpt.yml文件配置内容:
# 使用说明 V4.0.0
# 1. 使用docker-compose 宿主机不需要配置host来发现
# 2. 无需修改源码,根目录 docker-compose up 即可
# 3. 静静等待服务启动
version: '3'
services:
message:
build:
context: ./chatgpt
restart: always
container_name: chatgpt
image: chatgpt
environment:
- MYSQL_HOST=你的远程服务器ip
- JAVA_OPTS=-Xmx256m
- NACOS_HOST=你的远程服务器ip
- MYSQL_PWD=
ports:
- 9527:9527
network_mode: host
执行命令,服务启动成功
docker-compose -f data-chatgpt.yml up -d --build
调用成功