Docker
@ 叱月 | 2021-04-26T14:21:39+08:00 | 2 分钟阅读 | 更新于 2021-04-26T14:21:39+08:00

Docker部署过程之中遇见的问题和备忘录

备忘录

​ RewriteEngine on ​ ReWriteCond %{SERVER_PORT} !^443$ ​ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

chown -R www-data:www-data /var/www/html/owncloud/

chmod 777 /var/www/html/owncloud/config/
    RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
docker run -itd -p 5299:5299 --name baidu -v /opt/BDdownload:/root/Downloads baiyuetribe/baiduyunpan

#elatic search

docker run -d --name elaticksearch -p 9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

Owncloud

关闭维护模式

docker exec -u www-data owncloud01 php occ maintenance:mode --off
docker tag 629533dcbf78 registry.cn-hangzhou.aliyuncs.com/jgx/docker_jgx:1.0
docker push registry.cn-hangzhou.aliyuncs.com/jgx/docker_jgx:1.0

1、事务文件完善:

只有一个问题,官方提供的Docker镜像所使用的apt源并不完整,redis-server、php-redis一个也没有。经过一番研究,发现php扩展已经安装,只需要考虑Redis服务就行了。

事务文件

一个可行的方法是更换apt源,不过还有一个更好的方法:与单独运行Redis的容器互联,这样也符合了Docker构建服务的习惯做法。

运行官方Redis镜像:

docker run --name redis-server -d redis

在运行ownCloud镜像时与Redis建立互联

docker run --name redis-server --link reids-server:redis -d owncloud:latest

如果此时ownCloud已存在,则要将Redis与ownCloud主动建立互联:

docker run --name redis-server --link owncloud:owncloud -d redis

如果ownCloud容器使用的不是默认网桥(例如使用docker-composer建立),就需要将Redis添加到相应网桥中:

docker run --name redis-server --network [网桥名] -d redis

修改ownCloud的配置文件,添加以下内容,注意“host"后面要填容器名或容器ID:

'memcache.local' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'redis',
'port' => 6379,
],
'memcache.locking' => '\OC\Memcache\Redis',

完成后,刷新ownCloud页面,可以看到有关内存缓存和事务文件锁定的错误已经消失:

2

2、URL完善:

config.php+OCC命令

编辑config/config.php

在config.php中设置规则,只需加入以下2行:

'overwrite.cli.url' => 'ownCloud/Nextcloud访问地址',
'htaccess.RewriteBase' => '/',

第一行一般已经存在,可以不再添加,如果和你当前的Nextcloud/ownCloud的访问地址不同,则要修改为当前地址。

以下是一个config.php示例的部分内容,需要添加或修改的两行已用黄色标出

  'overwrite.cli.url' => 'http://192.168.3.3', 
  'dbtype' => 'mysql',
  'version' => '12.0.0.16',
  'dbname' => 'nc',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'user',
  'dbpassword' => 'password',
  'installed' => true,
  'htaccess.RewriteBase' => '/',

现在可以将它保存了。

使用OCC命令生成.htaccess文件

别急着访问Nextcloud,我们只是添加了生成.htaccess的规则而已。现在要使用OCC命令重新生成.htaccess

使用以下命令生成.htaccess文件:

Ubuntu/Debian类系统

sudo -u www-data php occ maintenance:update:htaccess

CentOS/RedHat:

sudo -u apache php occ maintenance:update:htaccess

如图:

update-htaccess

访问你的Nextcloud,index.php已经消失了。

url完善

去除文件:

'skeletondirectory' => '',

© 2021 叱月的小冰窖

avatar
关于我

叱月❤️的 ❤️ 博客

记录一些技术上的事

一名大四学生🕯️

马上毕业于青岛理工大学琴岛学院

– 2021 年 07 月 2 日更新

社交链接