docker - 从 docker 安装的 Nextcloud。如何下载和安装自定义应用程序?

标签 docker ubuntu docker-compose nextcloud

Ubuntu 18.04
Docker 版本 20.10.2
docker 撰写版本 1.27.4
这里的主要问题是我对 docker 的经验很少。
从此page我想我需要下载应用程序并将其放置在 /var/www/nextcloud/apps 中,问题是......据我所知,这条路线是 docker 内的路线。
我也许可以复制 this solution 之类的文件,但我想要一个更简洁的版本,我可以在其中继续编辑和更新应用程序。
在我的 .yml 文件中,我有一个这样的条目:

volumes:
  - /data/ncweb:/var/www/html
我想我应该添加另一个条目以将该虚拟路径与 docker 外部的真实路径链接起来。
这里有2个问题:
  • 我不知道哪个条目应该是
  • 不确定我是否必须告诉 Nextcloud 看那里以及如何看,在我看来没有必要。

  • 也许这个?
    volumes:
      - /data/ncweb:/var/www/html
      - /data/ncapps:/var/www/nextcloud/apps
    
    我也不知道如何查找apps的路径在 docker 内部,因此该路线可能完全错误。我尝试了一个名为 dive 的工具但我以错误的方式使用它。
    提前致谢
    ..... 编辑 .....
    这里有完整的 .yml 文件
    version: "3.3"
    
    networks:
      web:
        external: true
      internal:
        external: false
    
    services:
      nextcloud:
        image: nextcloud:20
        container_name: nextcloud-web
        environment:
          MYSQL_HOST: nextcloud-db:3306
          MYSQL_DATABASE: nextdb
          MYSQL_USER: nextuser
          MYSQL_PASSWORD: abcdefghijklm
        volumes:
          - ./ncweb:/var/www/html
        restart: unless-stopped
        labels:
          - "traefik.enable=true"
          - "traefik.docker.network=web"
          - "traefik.http.routers.nc.rule=Host(`example.com`)"
          - "traefik.http.routers.nc.entrypoints=websecure"
          - "traefik.http.routers.nc.tls=true"
          - "traefik.http.routers.nc.tls.certresolver=le"
          - "traefik.http.routers.nc.middlewares=nc-header"
          - "traefik.http.routers.nc.service=nextcloud"
          - "traefik.http.services.nextcloud.loadbalancer.server.port=80"
          - "traefik.http.middlewares.nc-header.headers.referrerPolicy=no-referrer"
          - "traefik.http.middlewares.nc-header.headers.stsSeconds=31536000"
          - "traefik.http.middlewares.nc-header.headers.forceSTSHeader=true"
          - "traefik.http.middlewares.nc-header.headers.stsPreload=true"
          - "traefik.http.middlewares.nc-header.headers.stsIncludeSubdomains=true"
          - "traefik.http.middlewares.nc-header.headers.browserXssFilter=true"
          - "traefik.http.middlewares.nc-header.headers.customRequestHeaders.X-Forwarded-Proto=https"
        networks:
          - internal
          - web
        depends_on:
          - nextcloud-db
          - ooserver
        logging:
          options:
            max-size: '1m'
            max-file: '10'
          driver: json-file
    
      ooserver:
        image: alehoho/oo-ce-docker-license
        container_name: ooserver
        environment:
          # Uncomment strings below to enable the JSON Web Token validation.
          - JWT_ENABLED=true
          - JWT_SECRET=abcdefghijklm
          - JWT_HEADER=Authorization
          - JWT_IN_BODY=true
        networks:
          - web
        stdin_open: true
        tty: true
        restart: unless-stopped
        volumes:
          - ./oodata:/var/www/onlyoffice/Data
          - ./oolib:/var/lib/onlyoffice
          - ./oodb:/var/lib/postgresql
          - ./oologs:/var/log/onlyoffice
        labels:
          - "traefik.enable=true"
          - "traefik.docker.network=web"
          - "traefik.http.routers.oo.service=oo"
          - "traefik.http.routers.oo.entrypoints=websecure"
          - 'traefik.http.routers.oo.rule=Host("ooserver.example.com")'
          - "traefik.http.routers.oo.tls=true"
          - "traefik.http.routers.oo.tls.certresolver=le"
          - "traefik.http.routers.oo.middlewares=oo-header"
          - "traefik.http.services.oo.loadbalancer.server.port=80"
          - "traefik.http.middlewares.oo-header.headers.referrerPolicy=no-referrer"
          - "traefik.http.middlewares.oo-header.headers.stsSeconds=31536000"
          - "traefik.http.middlewares.oo-header.headers.forceSTSHeader=true"
          - "traefik.http.middlewares.oo-header.headers.stsPreload=true"
          - "traefik.http.middlewares.oo-header.headers.stsIncludeSubdomains=true"
          - "traefik.http.middlewares.oo-header.headers.browserXssFilter=true"
          - "traefik.http.middlewares.oo-header.headers.customRequestHeaders.X-Forwarded-Proto=https"
        logging:
          options:
            max-size: '1m'
            max-file: '10'
          driver: json-file
    
      nextcloud-db:
        image: mariadb:10
        container_name: nextcloud-db
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
        environment:
          MYSQL_ROOT_PASSWORD: abcdefghijklm
          MYSQL_DATABASE: nextdb
          MYSQL_USER: nextuser
          MYSQL_PASSWORD: abcdefghijklm
        volumes:
          - nextdb-data:/var/lib/mysql
        restart: unless-stopped
        networks:
          - internal
        labels:
          - "traefik.enable=false"
        logging:
          options:
            max-size: '1m'
            max-file: '10'
          driver: json-file
    
      adminer:
        image: adminer
        container_name: nextcloud-dbadmin
        environment:
          ADMINER_DEFAULT_SERVER: nextcloud-db
        labels:
          - "traefik.enable=true"
          - "traefik.docker.network=web"
          - "traefik.http.routers.dbncadmin.rule=Host(`dbadmin.example.com`)"
          - "traefik.http.routers.dbncadmin.entrypoints=websecure"
          - "traefik.http.routers.dbncadmin.tls=true"
          - "traefik.http.routers.dbncadmin.tls.certresolver=le"
          - "traefik.http.routers.dbncadmin.service=dbncadmin"
          - "traefik.http.routers.dbncadmin.middlewares=securelogin"
          - "traefik.http.services.dbncadmin.loadbalancer.server.port=8080"
          - "traefik.http.middlewares.securelogin.basicauth.users=xxxxxx:$$apr1$$abcdefghijklm$$abcdefghijklm"
        networks:
          - internal
          - web
        depends_on:
          - nextcloud-db
    
    volumes:
      nextdb-data:
    

    最佳答案

    完美的!当您使用 Nextcloud 自己提供的 Container Image 时,您玩得很开心!
    只需将另一个卷添加到您的撰写文件中,该文件链接到 /var/www/html/custom_apps你应该很高兴。见 持久数据在他们的docs .
    你应该 不是 将默认应用程序路径与 docker 链接,因为这意味着将一个空(或仅填充了您的应用程序)目录链接到容器中。但是由于 NC 是一种框架,即使文件列表也是一个应用程序 - 如果您不提供您的版本,它将会丢失!

    关于docker - 从 docker 安装的 Nextcloud。如何下载和安装自定义应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66076473/

    相关文章:

    docker - 在Docker撰写文件中设置.env变量时遇到问题

    linux - 打开文件运行 x 时间 - linux 终端

    .net - pkg-config 如何决定默认添加哪个查找路径?

    mysql - 使用 Docker Compose 在端口 3307 上运行 MySQL

    Docker Compose 保持容器运行

    windows - 如何在 Windows 上运行 ubuntu 容器?

    docker - Nginx 403禁止在docker的laravel项目中使用

    docker - Traefik可以与docker-compose连接,但不能与Windows上的swarm服务连接

    docker - 如何在 Docker 中重新启动 Weaviate 而不丢失我的架构?

    ubuntu - Linux (Ubuntu) : safely remove a USB flash disk via the command line