当前位置: 首页 > 工具软件 > Rapidoid > 使用案例 >

Rapidoid及其容器化的Web平台

麹权
2023-12-01

Rapidoid首先是一个Java的Web框架,提供了一系列Web应用开发相关的类库。其次,Rapidoid还是一个能够提供Web服务的容器化的平台,即可以直接使用Rapidoid构建容器实例,提供HTTP服务。本文详细介绍其作为Web平台的用法。关于Rapidoid开发框架,详见其文档。
Rapidoid平台实际上就是一个Docker容器,可以作为HTTP服务器直接发布静态Web资源,也可以部署Jar形式的Java Web应用,发布动态Web资源。
1. Rapidoid平台的组成

  • Dockerfile文件

基于openjdk:8-jre-slim的Debian操作系统,即包含Java 8相关类库的Debian stretch操作系统。

容器服务的默认端口8888。

  • entrypoint.sh文件

一个脚本文件,用以在容器实例中启动一个可执行的jar文件,默认为容器中的/app/app.jar文件。即执行如下命令:

java ... -jar /app/app.jar

2. Rapidoid平台的获取
        docker pull rapidoid
        或
        docker pull rapidoid:latest
3. Rapidoid平台的用法
        1)快速启动容器,并在容器内给出帮助信息
            docker run --rm rapidoid --help
        2)包含Rapidoid和MySQL两个容器的REST服务
            i. 首先启动MySQL容器
                docker pull mysql
                docker run -d --name my-mysql-container -e MYSQL_ROOT_PASSWORD=db-pass mysql
            ii. 启动Rapidoid容器时,连接到MySQL容器
                docker run -it --rm \
                -p 8888:8888 \
                --link my-mysql-container:mysql \#注意这里,链接名必须为mysql
                rapidoid \
                profiles=mysql \
                jdbc.host=mysql \
                jdbc.password=db-pass \
                '/users <= SELECT user FROM mysql.user'
            iii. 验证
                打开Web浏览器,访问http://localhost:8888/users
        3)直接发布/your-www-root的静态资源
            docker run -it --rm \
            -p 8888:8888 \
            -v /your-www-root:/app/static \注意这里,映射外部资源必须到/app/static
            rapidoid
        4.编辑/app/config.yml文件,配置Rapidoid

rapidoid.port=4444
rapidoid-admin.port=9999
app.services=ping
admin.services=status

            可以在Web浏览器中访问对应的端口及URI,以验证配置是否生效。
                http://localhost:4444/_ping
                http://localhost:9999/_status
        5)基于Rapidoid容器,运行Java应用
            Java应用以jar的形式发布,必须被映射为容器内的/app/app.jar文件。
            扩展Dockerfile,并复制应用到容器内如下:

FROM rapidoid:latest
...
COPY /location/of/your/webapp.jar /app/app.jar
...


 

参考链接:

    https://www.rapidoid.org/
    https://www.rapidoid.org/docs.html
    https://github.com/rapidoid/docker-rapidoid
    https://store.docker.com/images/rapidoid/
    https://docs.docker.com/samples/library/rapidoid/
 

 类似资料: