用cloud9+openshift+django开发web应用

本文介绍如何使用Cloud9和OpenShift部署基于Python和Django的Web应用程序,包括项目创建、编辑、预览及远程部署等步骤。

基本介绍

开发环境: cloud9    

开发语言:python及第三方库django

部署服务器:openshift

cloud9

新建工程:


输入项目名字,并且选择类型为python/django


启动编辑


点击"Run Project",cloud9会将web app部署在自己的服务器上,并且给出一个链接到web app,点击"Preview"可以打开该链接到web app。除此之外,通过终端也可以实现Run Project和Preview的功能。


在openshift上新建一个应用,选择项目类型为django。


因为最终要将程序部署在openshift云服务器上,所以删除cloud9上的文件,通过git工具来获得服务器端文件。


初始化git工作目录,会在工程下新建一个隐藏的.git目录。


要在cloud9中安装openshift的客户端程序


rhc setup步骤中,要输入openshift的账号密码


绿色的字代表安装成功。这个时候可以从openshift获取工作目录。


箭头处的链接表示服务器端应用程序的地址。ssh是一种可读可写的协议。


导入的文件目录如下,manage.py是应用程序的入口


右键manage.py,点击红框处选项,在manage.py所在目录下打开一个终端,输入 python manage.py runserver 0.0.0.0:8080,运行程序。

为什么不用Run Project? 其实Run Project也是对应一个终端命令,而他的默认工作路径是~/worksapce,在该路径下无法找到manage.py文件进入程序!


绿框提示了程序的链接,可以该链接打开网页查看,也可以通过Preview窗口。


编辑工作目录的文件,要修改和增加的文件由红框标出。


预览


通过  git add .  和  git commit  命令更新本地仓库。


通过git push 将本地仓库部署到远程服务器


远程仓库地址在openshift中给出


这个web应用程序是包装了之前的博客python网络爬虫之农大绩点计算器,效果如下:



源代码地址:https://github.com/w2qiao/web_app_by_Django

### 3.1 Docker 部署 Java 服务的准备 在 Linux 环境下使用 Docker 部署 Java 服务,首先需要确保系统中已安装 Docker。可以通过以下命令安装 Docker: ```bash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ``` 安装完成后,启动 Docker 服务并设置开机自启: ```bash systemctl start docker systemctl enable docker ``` Docker 的安装和使用在 Linux 上是基础操作,例如在 CentOS 7 上可以直接使用 `yum install docker` 命令进行安装,并通过 `systemctl` 管理服务状态[^2]。 ### 3.2 使用 Docker 部署 Java 应用 准备 Java 应用的 JAR 包,并将其上传至服务器指定目录,例如 `/home/guns.jar`。然后,使用以下命令运行 Docker 容器: ```bash docker run -d --net=host \ -v /etc/timezone:/etc/timezone \ -v /etc/localtime:/etc/localtime \ -e "TZ=Asia/Shanghai" \ -v /home/guns.jar:/home/guns.jar \ --name guns java:8 java -jar /home/guns.jar ``` 该命令将 Java 应用的 JAR 包挂载到容器中,并设置时区同步,确保容器内时间与宿主机一致。Docker 的优势在于可以快速打包应用及其依赖,实现便捷的部署和管理[^3]。 ### 3.3 使用 OpenShift 部署 Java 应用 OpenShift 是一个基于 Kubernetes 的 PaaS 平台,支持容器化应用的部署、管理和扩展。在 OpenShift 中部署 Java 应用通常需要以下步骤: 1. **构建镜像**:使用 Dockerfile 构建包含 Java 应用的镜像。可以通过 OpenShift 的 Source-to-Image (S2I) 工具自动构建镜像。 2. **推送镜像**:将构建好的镜像推送到 OpenShift 的内部镜像仓库或外部镜像仓库。 3. **部署应用**:在 OpenShift 中创建部署配置,指定镜像和运行参数,例如环境变量、端口映射等。 4. **暴露服务**:通过创建服务和路由,将应用暴露给外部访问。 以下是一个简单的 OpenShift 部署配置示例: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: java-app spec: replicas: 1 selector: matchLabels: app: java-app template: metadata: labels: app: java-app spec: containers: - name: java-app image: your-registry/your-java-app:latest ports: - containerPort: 8080 env: - name: TZ value: Asia/Shanghai imagePullSecrets: - name: your-registry-secret ``` ### 3.4 注意事项 - **JAR 包路径**:确保 JAR 包路径正确,并且宿主机与容器中的路径一致,避免因路径错误导致启动失败。 - **时区设置**:通过 `-e "TZ=Asia/Shanghai"` 设置容器内时区与宿主机一致,避免因时区差异引发日志记录或定时任务异常。 - **网络模式**:使用 `--net=host` 或 `network_mode: host` 可使容器共享宿主机网络,简化端口映射配置,但需注意安全性和端口冲突问题。 - **JDK 安装**:若使用基础镜像如 `java:8`,需确保其版本与应用兼容。如需自定义 JDK,可先构建包含 JDK 的镜像[^4]。 - **OpenShift 配置**:在 OpenShift 中部署应用时,需确保镜像仓库的访问权限配置正确,避免因权限问题导致镜像拉取失败。 ### 3.5 相关配置与扩展 - **用户权限管理**:在部署过程中,建议创建专用用户运行 Docker 容器,避免使用 root 用户,提高安全性。可使用 `useradd` 或 `adduser` 命令创建用户,并进行适当授权。 - **挂载配置文件**:若 Java 应用依赖外部配置文件(如 `application.properties`),可将其挂载至容器中对应路径,确保应用能正确读取配置。 - **日志管理**:建议将容器日志目录挂载到宿主机,便于日志收集与分析。例如 `-v /var/log/guns:/var/log/guns`。 - **健康检查**:可通过 Docker 的 `HEALTHCHECK` 指令或 Docker Compose 中的 `healthcheck` 字段配置健康检查机制,确保服务正常运行[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值