我的编程空间,编程开发者的网络收藏夹
学习永远不晚

DevOps流水线搭建-PHP版本

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

DevOps流水线搭建-PHP版本

一、介绍

流水线发布代码

1、官网

https://www.jenkins.io/zh

2、kubesphere里的介绍

https://kubesphere.io/zh/docs/v3.3/devops-user-guide/how-to-use/pipelines/choose-jenkins-agent/

3、git仓库

可以自己写点测试代码,提交,待会测试用

https://gitee.com/

4、创建devops项目

5、创建流水线

二、PHP发布步骤

1、第一步:拉代码

配置自己的仓库登录密码

拉代码运行成功,当然自己得提前去代码仓库设置好自己的测试仓库。

2、第二步:制作镜像

思路:首先制作一个PHP+nginx的镜像,然后利用dockerfile把拉到的代码打进去,制作一个新镜像。

正好我之前做过一个,可以利用一下。

php+nginx的镜像制作过程: https://blog.csdn.net/u014225032/article/details/125165684

有了这个镜像之后,需要你把他推送到阿里云,待会编写项目的dockerfile要用到,因为这里要和阿里云打交道,所以少不了账号密码。

阿里云账号注册 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

自己注册一下,创建个实例,开个仓库就完事了。

 echo "阿里云登录密码" | docker login --username=登录名 registry.cn-hangzhou.aliyuncs.com --password-stdin

这个地方本来应该设置成变量名配置的,我这里方便大家看,就直接写了,上正式环境的时候大家可以写道配置字典里。

FROM registry.cn-hangzhou.aliyuncs.com/mystudygyd/studyredis:nginx-phpv1MAINTAINER itddENV MYPATH /usr/local/nginx/htmlWORKDIR $MYPATHADD * /usr/local/nginx/html/CMD echo $MYPATHEXPOSE 80 443ENTRYPOINT ["/tmp/php/startServer.sh"]
docker build -t ubuntu-nginx-php:latest .

这里没什么好说的,创建镜像。这样第二步就完事了。

3、第三部:push 镜像

把镜像推送到阿里云仓库

 docker tag ubuntu-nginx-php:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER

打tag,为什么这样写是阿里云的语法,里面的变量是在编辑Jenkinsfile配置里

docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER

推送镜像也是阿里云的语法,$BUILD_NUMBER变量是发布一次+1的一个变量,大家在生产环境中可以改成分支+时间,这样可以方便查看当前的版本。

4、第四步:部署到dev

首先配置一下k8s集群的配置。因为是所有节点都要部署,而node节点没有部署能力,所以需要加权限。

创建凭证的时候选择kubeconfig内容会自动生成,然后名字写一个,我写的是demo-kubeconfig,变量名 KUBECONFIG_CREDENTIAL_ID

echo "$KUBECONFIG_CREDENTIAL_ID" > ~/.kube/config && cat ~/.kube/config && chown 777 -R ~/.kube/config && kubectl get nodes

把配置写到.kube/config文件里,后面是权限的校验。

kubectl get nodes && envsubst < deploy/deploy.yaml | kubectl apply -f -

创建pod,有基础的应该能看懂。

apiVersion: apps/v1kind: Deploymentmetadata:  labels:    app: sannong  name: sannong  namespace: sannong   #一定要写名称空间spec:  progressDeadlineSeconds: 600  replicas: 1  selector:    matchLabels:      app: sannong  strategy:    rollingUpdate:      maxSurge: 50%      maxUnavailable: 50%    type: RollingUpdate  template:    metadata:      labels:        app: sannong    spec:      imagePullSecrets:        - name: alilogin  #提前在项目下配置访问阿里云的账号密码      containers:        - image: $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER          readinessProbe:            httpGet:              # 健康检查url,如果健康检查不通,k8s就认为你的服务挂了,不会给你分配流量过来              path: /                port: 80            timeoutSeconds: 10            failureThreshold: 30            periodSeconds: 5          imagePullPolicy: Always          name: app          ports:            - containerPort: 80              protocol: TCP          resources:            limits:              cpu: 300m              memory: 600Mi          terminationMessagePath: /dev/termination-log          terminationMessagePolicy: File      dnsPolicy: ClusterFirst      restartPolicy: Always      terminationGracePeriodSeconds: 30---apiVersion: v1kind: Servicemetadata:  labels:    app: sannong  name: sannong  namespace: sannongspec:  ports:    - name: http-80      port: 80      protocol: TCP      targetPort: 80  selector:    app: sannong  sessionAffinity: None  type: NodePort

5、运行流水线

成功。如果你在运行流水线,发现一直不动,你可以尝试再创建一个账户专门发布流水线试试。在去项目里看看pod是否启动成功。

看是成功了,再去service暴露下外部端口

浏览器访问

完美!虽然写的比较潦草,但是尽力了。哈哈,祝愿每一位php从业者都可以实现全流程搭建。欢迎评论点赞交流。

来源地址:https://blog.csdn.net/u014225032/article/details/129600539

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

DevOps流水线搭建-PHP版本

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

CentOS7怎么搭建两个PHP版本

这篇文章主要介绍“CentOS7怎么搭建两个PHP版本”,在日常操作中,相信很多人在CentOS7怎么搭建两个PHP版本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CentOS7怎么搭建两个PHP版本”的疑
2023-07-05

Windows环境下怎么搭建Nginx和多版本PHP共存

这篇“Windows环境下怎么搭建Nginx和多版本PHP共存”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Windows环
2023-06-26

如何使用Docker快速搭建多版本PHP开发环境

本篇内容主要讲解“如何使用Docker快速搭建多版本PHP开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Docker快速搭建多版本PHP开发环境”吧!目标支持 PHP 5.6.x
2023-07-04

阿里云服务器如何搭建最新版本php环境

阿里云服务器搭建最新版本的php环境,需要使用php编程语言,如PHP(PHP是一种编程语言)或Java(JAVA是一种编程语言)语言,下面是详细步骤:安装PHP:在阿里云服务器上,您可以安装PHP编程语言,包括以下版本:https://www.aliyun.cn/products/php-6/en-us/创建PHP项目在服务器上创建一个新的PHP项目,这个项目可以是一个网站或一
2023-10-26

阿里云服务器如何搭建最新版本php环境模式

阿里云服务器搭建最新版本php环境模式可以使用以下步骤:下载并安装zendserver软件。可以从阿里云官网获取最新版本zendserver软件,如下所示:zend-nzend_serverzend_server_revzend_server.sh创建php环境和服务器。首先要创建一个可以用来搭建php环境的php环境,并将其命名为zendserver。例如,可以使用以下命令创
2023-10-26

Nginx+PHP(FastCGI)搭建高并发WEB服务器(自动安装脚本)第二版

Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版) 编写
2022-11-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录