首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在docker容器中更新wordpress插件

在docker容器中更新wordpress插件
EN

Stack Overflow用户
提问于 2014-04-20 17:57:53
回答 2查看 12.6K关注 0票数 10

以下是我的场景:

我一直在开发一个将经常修改的插件,我需要使用docker创建一个镜像,在其中安装一个新版本的wordpress,然后从开发环境导入所有的数据库和插件(插件在github上)

我设法用https://github.com/eugeneware/docker-wordpress-nginx在docker上安装了wordpress。

下面是我的问题:

1-在docker中安装后,有没有办法修改wordpress文件和文件夹(用于安装插件和使用命令行,而不是wordpress GUI)

2-如果我想实现我上面解释的,最好的工作流程是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-01 13:16:58

你的问题有两种可能的答案。我现在也在努力解决这个问题,所以YMMV。

首先,如果你在你的主机上运行Docker容器,你总是可以暂停它,从运行的容器docker commit创建一个新的镜像,然后将它推送到一个私有的存储库docker push (实时的Wordpress安装可能不适合公共的Docker Hub)。完成后,您可以恢复容器docker unpause,然后可以在您的开发系统上更新映像。然后在升级完成并经过测试且一切正常后再回来,然后docker pull镜像并重新启动您的服务,以便使用新镜像。

这不是一个很好的解决方案,但它会起作用的。

根据Tadeusz的评论,我不一定要从数据卷运行整个WP安装。它们是易失性的,如果由于任何原因,您的容器被删除,并且它是唯一引用数据卷的容器,那么您将失去一切(除非您保留多个备份--您确实保留了多个备份,对吧?)

我正在考虑的另一个解决方案是将插件更改部署为Dockerfile的一部分。一种更深思熟虑的方法,但可以通过网络挂钩,这样当你提交Github存储库时,它会自动构建一个新的Docker镜像。有关于进行自动构建过程here的讨论。服务器管理员端的东西在您的端托管将需要拉出一个新的图像,正如我上面提到的。完成了。

当然,这项设置留给您的开发系统作为练习。

干杯!

票数 5
EN

Stack Overflow用户

发布于 2018-04-19 21:20:22

迟到了,但我已经有了一个好的解决方案。它没有被其他答案覆盖,对未来的读者也应该是有用的。

我在ec2 t2-micro上运行它,到目前为止,它工作得很好。mySQL和Nginx都安装在自己的容器中(通过Docker compose),Docker卷用于维护mySQL和Wordpress的状态。关于Nginx设置的代码和附加信息取自here

docker-compose.yml:

代码语言:javascript
运行
复制
version: '3.6'

 services:
    db:
      image: mysql:5.7
      volumes:
        - db_data:/var/lib/mysql
      restart: always
      environment:
        MYSQL_ROOT_PASSWORD: db_root_pass
        MYSQL_DATABASE: db
        MYSQL_USER: db_user
        MYSQL_PASSWORD: db_pass
    nginx:
      depends_on:
        - wordpress
      image: nginx:latest
      restart: always
      ports:
        - "80:80"
      volumes:
        - ./nginx.conf:/etc/nginx/nginx.conf
    wordpress:
      depends_on:
        - db
      volumes:
        - wp_data:/var/www/html/wp-content
      image: wordpress:latest
      restart: always
      environment:
        WORDPRESS_DB_HOST: db:3306
        WORDPRESS_DB_USER: db_user
        WORDPRESS_DB_PASSWORD: db_pass
 volumes:
    db_data:
    wp_data:

db_data卷被映射到Wordpress容器中的mySQL数据目录,而wp_data卷被映射到Wordpress容器中的Wordpress内容目录。你可以做的就是配置命令行界面来写入主机上的wp_data目录,这些更改将会在Wordpress站点上显示出来,而不需要重新构建任何容器!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23180800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档