Docker 部署 WordPress 这个目录怎么搞?软连接好像也不行[阿里云函数计算]

Docker 部署 WordPress 这个目录怎么搞?软连接好像也不行

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在阿里云函数计算中使用Docker部署WordPress时,WordPress的目录需要挂载到容器中才能保证WordPress的正常运行。在容器中挂载目录时,可以将WordPress的目录打包成一个.tar文件,并在部署时将该文件挂载到容器的指定路径中。您可以按照以下步骤来进行部署:

    1. 在本地机器上打包WordPress源码,使用tar命令将WordPress的目录打包成一个.tar文件,命令示例为:
    tar czvf wordpress.tar.gz /path/to/wordpress

    其中,/path/to/wordpress为WordPress的目录。

    1. 将打包好的wordpress.tar.gz文件上传到OSS(对象存储服务)中,以便在容器中挂载该文件。您可以使用OSS CLI等工具上传文件,参考文档:使用 OSS CLI 上传文件。

    2. 创建一个Dockerfile文件来构建WordPress的Docker镜像,示例Dockerfile如下:

    FROM wordpress:5.3.2-php7.2-apacheCOPY wordpress.tar.gz /var/www/html/RUN tar xf /var/www/html/wordpress.tar.gz -C /var/www/html/ --strip-components=1RUN rm /var/www/html/wordpress.tar.gz

    其中,wordpress.tar.gz是您在OSS上上传的WordPress源码包,/var/www/html是WordPress默认安装目录。

    1. 构建Docker镜像,示例命令如下:
    $ docker build -t my-wordpress-image .

    其中,my-wordpress-image是您自定义的镜像名称。

    1. 将Docker镜像上传到阿里云容器镜像服务(Container Registry)中,以便在函数计算中使用。您可以使用阿里云CLI或手动上传镜像。上传镜像时,需要将镜像标记为阿里云容器镜像服务的仓库地址,例如:
    $ docker tag my-wordpress-image registry.cn-hangzhou.aliyuncs.com/my-namespace/my-image:v1.0

    其中,registry.cn-hangzhou.aliyuncs.com是阿里云容器镜像服务的仓库地址,my-namespace是您创建的命名空间,my-image是您自定义的镜像名称,v1.0是镜像的版本号。

    1. 在阿里云函数计算中创建一个函数,并将WordPress的容器镜像作为函数的运行时,将OSS上的WordPress.tar.gz文件挂载到容器中的/var/www/html/目录下,示例代码如下:
    import requestsimport jsonimport base64def handler(event, context):    # 构造PodSpec    pod_spec = {        "containers": [            {                # 镜像地址改成您自己的镜像地址                "image": "registry.cn-hangzhou.aliyuncs.com/my-namespace/my-image:v1.0",                "stdin": True,                "tty": True,                "name": "wordpress",                "volumeMounts": [                    {                        "mountPath": "/var/www/html",                        "name": "wordpress"                    }                ]            }        ],        "volumes": [            {                "name": "wordpress",                "nfs": {                    "server": "oss-cn-hangzhou.aliyuncs.com",                    "path": "/path/to/wordpress.tar.gz",                    "readOnly": True                }            }        ]    }    # 创建Kubernetes Deployment    deployment = {        "apiVersion": "apps/v1",        "kind": "Deployment",        "metadata": {            "name": "wordpress"        },        "spec": {            "replicas": 1,            "selector": {                "matchLabels": {                    "app": "wordpress"                }            },            "template": {                "metadata": {                    "labels": {                        "app": "wordpress"                    }                },                "spec": {                    "containers": pod_spec["containers"],                    "volumes": pod_spec["volumes"]                }            }        }    }    # 发送API请求创建Deployment    url = "https://{0}/apis/apps/v1/namespaces/{1}/deployments".format(        context.fc_cluster_id, context.fc_namespace)    resp = requests.post(url, headers={        "Content-Type": "application/json",        "Authorization": "Bearer {0}".format(context.fc_token)    }, json=deployment, verify=False)    resp.raise_for_status()    # 返回Deployment名称    return deployment["metadata"]["name"]

    其中,/path/to/wordpress.tar.gz是您在OSS上上传的WordPress源码包对象的路径,需要将该路径替换为您上传的实际路径。

    1. 运行函数并测试WordPress是否正常运行。

    值得注意的是,上述步骤中对WordPress的源码进行了打包处理,并将打包后的源码作为一个文件挂载到了容器的指定目录中。这样做可以将WordPress的源码与运行环境隔离开来,避免在部署时每次都要重新下载WordPress源码,同时也保护了您的WordPress源码不被恶意下载或篡改。

  2. home mnt还有data三个根目录.

    此答案来自钉钉群“阿里函数计算官网客户”