【Docker项目实战】使用Docker部署ActionView问题需求跟踪工具
【摘要】 【Docker项目实战】使用Docker部署ActionView问题需求跟踪工具
@TOC
一、ActionView介绍
1.1 ActionView简介
ActionView 是 Ruby on Rails 框架的一个核心组成部分,负责处理应用程序的视图层。它是一个模板引擎,允许开发者编写动态HTML页面,这些页面可以根据传入的数据自动渲染。ActionView 与控制器(ActionController)紧密协作,接收来自控制器的数据,并将其转换成最终呈现给用户的网页。
1.2 主要特点
- 模板引擎:ActionView 提供了一个强大且灵活的模板引擎,支持嵌入式 Ruby 代码(ERB),也支持其他模板引擎,如 Haml 和 Slim。
- 布局与局部视图:可以定义通用的页面布局,并通过局部视图重用页面组件,从而减少重复代码,使视图更加模块化。
- 辅助方法:提供了丰富的辅助方法来帮助生成 HTML 标签、日期格式化、数字格式化等,简化了视图逻辑。
- 缓存机制:支持片段缓存、页面缓存等多种缓存策略,可以显著提高应用性能。
- 国际化支持:内置了对多语言和区域设置的支持,便于构建国际化的应用。
- 表单构建:提供了便捷的方法来生成复杂的表单,包括错误消息显示、表单字段绑定等。
1.3 主要使用场景
- Web 应用开发:ActionView 最常见的使用场景是在构建基于 Web 的应用程序时,用于生成动态的 HTML 内容。
- API 开发:虽然 ActionView 主要用于生成 HTML,但它也可以与其他模板引擎一起使用,生成 JSON、XML 等格式的数据,适用于 API 开发。
- 邮件模板:可以利用 ActionView 创建动态的电子邮件模板,根据用户数据个性化邮件内容。
- 报告生成:生成复杂的报告页面,利用 ActionView 的布局和局部视图功能,可以轻松地构建包含图表、表格等元素的报告。
- 静态页面生成:即使对于静态页面,ActionView 也能提供一定的便利性,比如通过布局来统一网站风格。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 镜像名称 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | ncarlier/readflow:edge |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署ActionView问题需求跟踪工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-11-01 00:45:50 CST; 3 weeks 0 days ago
Docs: https://docs.docker.com
Main PID: 10450 (dockerd)
Tasks: 150 (limit: 9387)
Memory: 3.4G
CPU: 46min 54.584s
CGroup: /system.slice/docker.service
├─10450 /usr/bin/dockerd
├─10459 containerd --config /var/run/docker/containerd/containerd.toml
3.2 检查Docker版本
检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载ActionView镜像
执行以下命令,拉取以下ActionView相关镜像。
docker pull lxerxa/actionview:latest
docker pull lxerxa/actionviewnginx:latest
docker pull lxerxa/actionviewdb:latest
五、部署ActionView应用
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/actionview && cd /data/actionview
5.2 编辑部署文件
在`部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。
vim docker-compose.yaml
version: '3'
services:
web:
image: lxerxa/actionview:latest
restart: always
volumes:
- /data/actionview/uploads:/var/www/actionview/storage/app
expose:
- 80
depends_on:
- db
links:
- db:db
command: /bin/bash /scripts/run.sh
cron:
image: lxerxa/actionview:latest
restart: always
volumes_from:
- web
depends_on:
- db
links:
- db:db
command: /bin/bash /scripts/cronrun.sh
nginx:
restart: always
image: lxerxa/actionviewnginx:latest
depends_on:
- web
ports:
- 8500:80
links:
- web:web
db:
image: lxerxa/actionviewdb:latest
restart: always
expose:
- 27017
volumes:
- /data/actionview/db:/data
command: /bin/bash /scripts/run.sh
5.3 创建ActionView容器
执行以下命令,创建ActionView容器。
docker compose up -d
5.5 查看ActionView容器状态
检查ActionView容器状态状态,确保ActionView容器正常启动。
root@jeven01:/data/actionview# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
actionview-cron-1 lxerxa/actionview:latest "/bin/bash /scripts/…" cron 48 minutes ago Up48 minutes
actionview-db-1 lxerxa/actionviewdb:latest "/bin/bash /scripts/…" db 48 minutes ago Up48 minutes 27017/tcp
actionview-nginx-1 lxerxa/actionviewnginx:latest "/usr/sbin/nginx" nginx 48 minutes ago Up48 minutes 0.0.0.0:8500->80/tcp, :::8500->80/tcp
actionview-web-1 lxerxa/actionview:latest "/bin/bash /scripts/…" web 48 minutes ago Up48 minutes 80/tcp
六、访问ActionView服务
访问地址:http://192.168.3.88:8500,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。
默认管理员账号:
admin@action.view
;密码: actionview
七、总结
在使用 Docker 部署 ActionView 问题需求跟踪工具的过程中,容器化技术显著简化了环境配置和依赖管理,使得开发和部署更加高效。ActionView 与 Docker 的结合,不仅提高了应用的可移植性和一致性,还加速了开发和测试环境的搭建。通过标准化的容器环境,团队成员能够更快地上手和协同工作,提升了整体开发效率。实践表明,Docker 化部署在现代 Web 应用开发中具有明显优势。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)