文章目錄
1、採用LNMP環境搭建discuz論壇
一、LNMP起一個docker容器
docker run -itd --privileged -p 80:80 docker.io/centos /usr/sbin/init #入口命令改成/usr/sbin/init,是爲了支持systemctl風格啓動服務
注:若是出現上述報錯,重啓docker服務再試一下便可!php
二、安裝nginx、mariadb
yum install nginx mariadb mariadb-devel mariadb-server -y vim /etc/nginx/nginx.conf nginx -s reload systemctl start mariadb mysql_secure_installation mysql -uroot -pmysql
server { listen 80; server_name localhost; location / { root html; index index.html index.php; #我如今才搞清楚這個根location的做用,不管動態頁面仍是靜態頁面都是先匹配/,index參數:是把root參數的目錄下的相應文件取出來,而後再匹配下面這個動態和靜態的處理方式的location,因此通常來講還須要一個匹配靜態頁面的location,可是咱們這裏不須要! } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
三、安裝php
我試着採用yum安裝php,整了好久,php-fpm進程起了,端口9000也監聽了,但nginx就是沒法將動態頁面交給php解析。因此後面就採用了wget,纔好了的!html
php安裝教程:https://blog.csdn.net/weixin_44571270/article/details/103223557
注:安裝php5.4.44這個版本便可!!不要安裝php5.5.0以上的版本!mysql
2、搭建jenkins平臺
一、起docker容器
docker search jenkins docker pull docker.io/jenkins docker run -itd -p 8080:8080 docker.io/jenkins #容器中須要部署服務的才加/usr/sbin/init入口命令,這個容器自己就是一個服務,因此不須要加入口命令就能夠啓動它!
注:須要密碼nginx
cat /var/jenkins_home/secrets/initialAdminPassword
二、修改admin用戶的密碼
3、jenkins和Docker的整合
這裏的shell直接執行命令,是在jenkins所在容器執行的!
由於咱們要實如今jenkins上對discuz論壇進行網站內容更新,因此咱們必需要到discuz web服務器(Nginx)所在的哪一個容器進行操做!因此咱們須要作ssh免密鑰認證!這裏不支持交互式情景!git
#兩個容器都要作: yum install openssh openssh-server -y vim /etc/ssh/sshd-config #看看那些參數須要修改,優化 systemctl start sshd #discuz web容器: yum install passwd -y echo "1"|passwd --stdin root #jenkins容器: ssh-keygen ssh-copy-id -i /var/jenkins_home/.ssh/id_rsa.pub root@172.17.0.2
如今咱們就要在jenkins上寫shell腳原本使discuz論壇網站能頁面更新!web
有人可能會問:咱們直接寫shell腳本一執行,不就好了,幹嗎還要jenkins呢?sql
答:咱們如今作的都是最簡單的一個使用方法,爲了便於入門的,jenkins還能夠和svn、git等代碼倉庫創建鏈接獲取網站代碼,開發把代碼傳到倉庫中,而後jenkins上點擊更新便可,這樣你就能理解jnekins的使用情景了吧!docker
腳本編寫目的:使discuz論壇能更新它的log圖片!log圖片隨便本身找一個!
先找到logo的目錄位置:
shell
ssh -tt root@172.17.0.2" cd /usr/share/nginx/html/static/image/common mv logo.png logo.png.bak wget https://www.baidu.com/img/bd_logo1.png?qua=high mv bd_logo1.png?qua=high logo.png" #雙引號表示將命令導入這個終端! #若是不加-tt,會出現Pseudo-terminal will not be allocated because stdin is not a terminal.這樣的報錯!-tt能夠強制分配僞終端! #可是我看老師作的沒加-tt也能遠程執行成功!我加-tt解決了上面那個錯誤,也不能遠程執行成功!
而後apply、save、當即構建!就完成了
可是像上述這樣子構建,即便配置了免密鑰認證登陸也沒法遠程執行shell命令,老是失敗!vim
我後面百度發現新版本的jenkins,有一個名叫Publish Over SSH
的插件,能夠實現遠程執行shell命令,因此下面我就使用wget下載jenkins.war包,在tomcat中發佈它!
3、採用tomcat發佈jenkins
注意:由於咱們須要安裝SSH插件,老版本不支持SSH,因此咱們只能本身用tomcat發佈新版本!
一、安裝tomcat,並啓動tomcat
https://blog.csdn.net/weixin_44571270/article/details/102939666
二、下載jenkins,並解壓到tomcat發佈目錄
wget -O /opt/tomcat/webapps/ROOT/jenkins.war /opt http://mirrors.jenkins-ci.org/war-stable/2.204.3/jenkins.war /usr/local/jdk1.8.0_141/bin/jar xvf /opt/tomcat/webapps/ROOT/jenkins.war
完成!如今就能夠訪問了!
三、下載Publish Over SSH插件
下載完成後重啓jenkins便可!
四、SSH插件的使用及配置
通常來講咱們都使用用戶名加密碼ssh便可!
注:這個不用動,不用填,這個是使用公鑰和私鑰文件去鏈接的。
只須要點擊這個便可!沒有這個的話,會報錯的!
而後往上翻,找到Test Configuration,點擊它。
五、構建工程172.17.0.2,查看logo是否更換
能夠看到構建成功了!清除緩存!刷新discuz論壇網站!
採用jenkins,logo更換成功!