前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Docker Compose部署NextCloud和WordPress

使用Docker Compose部署NextCloud和WordPress

作者头像
ianzhi
发布2024-05-24 09:50:50
1620
发布2024-05-24 09:50:50
举报
文章被收录于专栏:LNMP开发那些事

一、全局配置

代码语言:javascript
复制
name: lnmp
services:
  caddy:
    image: caddy:latest
    volumes:
      - ./www:/var/www/html
      - ./caddy/etc:/etc/caddy
      - ./caddy/data:/data
      - ./caddy/config:/config
    ports:
      - 80:80
      - 443:443/tcp
      - 443:443/udp
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: 3
    restart: always

  redis:
    image: redis:latest
    volumes:
      - ./redis/config:/etc/redis
      - ./redis/data:/data
    restart: always
    command: /etc/redis/redis.conf

  mysql:
    image: mysql:latest
    volumes:
      - ./mysql/config:/etc/mysql
      - ./mysql/data:/var/lib/mysql
      - ./mysql/mysql-files:/var/lib/mysql-files
    cap_add:
      - SYS_NICE
    security_opt:
      - seccomp:unconfined
    environment:
      MYSQL_ROOT_PASSWORD: password
    ports:
      - 3306:3306
    restart: always

  php:
    build: ./php
    volumes:
      - ./php/config:/usr/local/etc
      - ./php/logs:/var/log/php
      - ./www:/var/www/html
    depends_on:
      - caddy
      - mysql
      - redis
    cap_add:
      - SYS_PTRACE
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: 3
    restart: always

  imaginary:
    image: nextcloud/aio-imaginary:latest
    restart: always
    command: -concurrency 2 -enable-url-source
    environment:
      - PORT=9000

1. PHP

PHP官方的镜像启用和安装的扩展比较少,直接使用会导致WordPress和Nextcloud的健康检查一堆信息,所以使用Dockerfile来基于官方镜像构建一个专用的镜像,PHP需要的扩展包括:

  • gd(png/jpeg/gif/webp/avif)
  • imagick
  • opcache(考虑性能)
  • apcu(Nextcloud的本地缓存)
  • zip(影响WordPress插件安装)
  • redis(WordPress的对象缓存和Nextcloud的分布式缓存)
  • gmp
  • intl
代码语言:javascript
复制
FROM php:8.2-fpm-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
    apk add --no-cache --update --virtual .build-deps \
    $PHPIZE_DEPS \
    icu \
    && apk add --no-cache --virtual .php-deps \
    imagemagick-dev \
    imagemagick-svg \
    libzip-dev \
    libpng-dev \
    libavif-dev \
    icu-dev \
    gmp-dev \
    libjpeg-turbo-dev \
    freetype-dev \
    && apk add --no-cache --virtual .tools-deps \
    git \
    openssh-client \
    unzip \
    && apk add --no-cache --virtual .runtime-deps \
    libzip \
    libpng \
    libavif \
    libjpeg-turbo \
    freetype \
    && pecl install https://pecl.php.net/get/imagick-3.7.0.tgz https://pecl.php.net/get/redis-6.0.2.tgz apcu \
    && docker-php-ext-configure intl \
    && docker-php-ext-configure gd \
      --with-freetype=/usr/include/ \
      --with-jpeg=/usr/include/ \
      --with-avif=/usr/include/ \
    && docker-php-ext-install zip gd pdo_mysql pcntl mysqli exif intl gmp bcmath sysvsem && docker-php-ext-enable zip gd pdo_mysql mysqli opcache exif intl gmp bcmath pcntl sysvsem imagick redis apcu
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024年5月23日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档