欢迎光临散文网 会员登陆 & 注册

docker-compose实现访问计数javaweb服务

2023-07-22 23:17 作者:章飞666  | 我要投稿

需求

利用 docker compose 快速搭建一个可以统计访问次数的 java web服务.


环境准备

安装 docker.

  • docker
  • docker desktop (window | mac)

步骤

1 新建 java web 服务

spring boot 2.x

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.6.11</version>
  <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <java.version>8</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

编写 Controller .

@RestController
public class AccessCounterController {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @GetMapping("/hello")
    public String hello() {
        Long counter = stringRedisTemplate.opsForValue().increment("accCounter");
        return "页面访问的次数: " + counter;
    }

}

项目配置

server.port=8080
spring.redis.host=redis
spring.redis.port=6379



2 Dockerfile 和 docker-compose.yml

FROM java:8
COPY target/*.jar /app/acc-counter/app.jar
CMD ["--server.port=8080"]

WORKDIR /app/acc-counter
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
version: "3.9"
services:
  acc-counter-app:
    build: .
    image: acc-counter-app
    depends_on:
      - redis
    ports:
      - "8080:8080"
  redis:
    image: "library/redis:alpine"

3 打包工程

mvn package


4 up

docker-compose up -d

第一次会自动先 build.



访问一下




  1. 如果后续需要修改 Dockerfile 配置, 修改后, 要先显示 docker-compose build, 否则, 即使你使用 up 指令新的修改不生效, 因为它会识别到之前build的过, 不会重新build.
  2. 注意环境版本, 我这里使用 java8+springboot 2.x+maven 3.x


docker-compose实现访问计数javaweb服务的评论 (共 条)

分享到微博请遵守国家法律