首页 > 其他分享 >容器化LNMP

容器化LNMP

时间:2023-01-01 22:23:51浏览次数:38  
标签:容器 k8s name LNMP nginx wordpress php root

26. 容器化LNMP

26.1 nginx

  • Dockerfile
root@k8s-master1:~/k8s-data/dockerfile/web/magedu/wordpress/nginx# cat Dockerfile 
#FROM harbor.magedu.local/pub-images/nginx-base-wordpress:v1.20.2 
FROM harbor.nbrhce.com/pub-images/nginx-base-wordpress:v1.20.2

ADD nginx.conf /apps/nginx/conf/nginx.conf
ADD run_nginx.sh /apps/nginx/sbin/run_nginx.sh
RUN mkdir -pv /home/nginx/wordpress
RUN useradd nginx && chown nginx.nginx /home/nginx/wordpress/ -R

EXPOSE 80 443

CMD ["/apps/nginx/sbin/run_nginx.sh"] 
  • 构建脚本
root@k8s-master1:~/k8s-data/dockerfile/web/magedu/wordpress/nginx# cat build-command.sh 
#!/bin/bash
TAG=$1
nerdctl build -t harbor.nbrhce.com/demo/wordpress-nginx:${TAG} .
echo "镜像制作完成,即将上传至Harbor服务器"
sleep 1
nerdctl push  harbor.nbrhce.com/demo/wordpress-nginx:${TAG}
echo "镜像上传完成"
  • 运行脚本
root@k8s-master1:~/k8s-data/dockerfile/web/magedu/wordpress/nginx# cat run_nginx.sh 
#!/bin/bash
#echo "nameserver 10.20.254.254" > /etc/resolv.conf
#chown nginx.nginx /home/nginx/wordpress/ -R
/apps/nginx/sbin/nginx
tail -f /etc/hosts
  • nginx.conf
root@k8s-master1:~/k8s-data/dockerfile/web/magedu/wordpress/nginx# cat nginx.conf 
user  nginx nginx;
worker_processes  auto;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 10M;
    client_body_buffer_size 16k;
    client_body_temp_path  /apps/nginx/tmp   1 2 2;
    gzip  on;
    server {
        listen       80;
        server_name  blog.nbrhce.com;
        location / {
            root    /home/nginx/wordpress;
            index   index.php index.html index.htm;
        }

        location ~ \.php$ {
            root           /home/nginx/wordpress;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
             include        fastcgi_params;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

26.2 php

  • Dockerfile
root@k8s-master1:~/k8s-data/dockerfile/web/magedu/wordpress/php# cat Dockerfile 
#PHP Base Image
FROM harbor.nbrhce.com/baseimages/centos:7.9.2009 

MAINTAINER  [email protected]

RUN yum install -y  https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm && yum install  php56-php-fpm php56-php-mysql -y 
ADD www.conf /opt/remi/php56/root/etc/php-fpm.d/www.conf
#RUN useradd nginx -u 2019
RUN useradd nginx
ADD run_php.sh /usr/local/bin/run_php.sh
EXPOSE 9000

CMD ["/usr/local/bin/run_php.sh"] 
  • 运行脚本
root@k8s-master1:~/k8s-data/dockerfile/web/magedu/wordpress/php# cat run_php.sh 
#!/bin/bash
#echo "nameserver 10.20.254.254" > /etc/resolv.conf

/opt/remi/php56/root/usr/sbin/php-fpm
#/opt/remi/php56/root/usr/sbin/php-fpm --nodaemonize
tail -f /etc/hosts
  • www.conf
root@k8s-master1:~/k8s-data/dockerfile/web/magedu/wordpress/php# egrep -v '^;|^$' www.conf 
[www]
user = nginx
group = nginx
listen = 0.0.0.0:9000
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /opt/remi/php56/root/var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /opt/remi/php56/root/var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path]    = /opt/remi/php56/root/var/lib/php/session
php_value[soap.wsdl_cache_dir]  = /opt/remi/php56/root/var/lib/php/wsdlcache

26.3 YAML

root@k8s-master1:~/k8s-data/yaml/magedu/wordpress# cat wordpress.yaml 
kind: Deployment
#apiVersion: extensions/v1beta1
apiVersion: apps/v1
metadata:
  labels:
    app: wordpress-app
  name: wordpress-app-deployment
  namespace: wordpress
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wordpress-app
  template:
    metadata:
      labels:
        app: wordpress-app
    spec:
      containers:
      - name: wordpress-app-nginx
        image: harbor.nbrhce.com/demo/wordpress-nginx:v1 
        imagePullPolicy: Always
        ports:
        - containerPort: 80
          protocol: TCP
          name: http
        - containerPort: 443
          protocol: TCP
          name: https
#站点目录挂载出来
        volumeMounts:
        - name: wordpress
          mountPath: /home/nginx/wordpress
          readOnly: true

      - name: wordpress-app-php
        image: harbor.nbrhce.com/demo/wordpress-php-5.6:v1
        #image: harbor.magedu.net/magedu/php:5.6.40-fpm 
        #imagePullPolicy: IfNotPresent
        imagePullPolicy: Always
        ports:
        - containerPort: 9000
          protocol: TCP
          name: http
#php也是需要访问站点目录的
        volumeMounts:
        - name: wordpress
          mountPath: /home/nginx/wordpress
          readOnly: false
      volumes:
      - name: wordpress
        nfs:
          server: 10.0.0.109
          path: /data/k8sdata/wordpress 


---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: wordpress-app
  name: wordpress-app-spec
  namespace: wordpress
spec:
  type: NodePort
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30031
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
    nodePort: 30033
  selector:
    app: wordpress-app
  • 测试页
root@k8s-deploy-ha:/data/k8sdata/wordpress# cat index.html 
wordpress static
root@k8s-deploy-ha:/data/k8sdata/wordpress# cat index.php 
<?php
 phpinfo();
?>
  • 下载代码目录到存储挂载的站点目录上
root@k8s-deploy-ha:/data/k8sdata/wordpress# wget https://cn.wordpress.org/wordpress-5.0.16-zh_CN.tar.gz
  • 数据库授权
mysql> create database wordpress;
Query OK, 1 row affected (0.01 sec)
mysql> grant all privileges on wordpress.* to "wordpress"@"%" identified by "wordpress";
Query OK, 1 row affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)

27. HPA

标签:容器,k8s,name,LNMP,nginx,wordpress,php,root
From: https://www.cnblogs.com/yidadasre/p/17019141.html

相关文章