使用docker安装nextcloud/onlyoffice document server/gitlab

VMware Workstation 配置桥接模式

在VMware界面选中需要设置的虚拟机,点击“虚拟机设置”->“硬件”->“网络适配器”,选中“桥接模式”。

在VMware界面点击“编辑”->“虚拟网络编辑器”,如果“VMnet信息”下面的原点是灰色的,需要首先点击一下右下角的“更改设置”使之具备管理员权限。选中VMnet0,在VMnet信息中选择“桥接模式”,并设置“桥接到”自己的真实网卡。自己的真实网卡可在宿主机的网络连接中查询到。

我在操作的过程中,给虚拟机配置好了桥接模式,也将虚拟机的ip地址设置成和宿主机在一个子网里,但宿主机与虚拟机之间依旧无法互相ping通,经查询后需要做以下两个事情:

  1. 在防火墙设置—>高级安全设置—>找到“文件和打印机共享(回显请求)ICMP-v4报文”—>启用,作用域:本地(任何计算机)
  2. 打开网络连接的属性,a.确认VMware Bridge Protocol被勾选       b.确认DNE LightWeight Filter未被勾选

参考链接:https://blog.csdn.net/helloexp/article/details/84787019

docker配置国内源

vim /etc/docker/daemon.json

{
     "registry-mirrors": [
     "https://docker.mirrors.ustc.edu.cn",
     "http://hub-mirror.c.163.com",
     "https://dockerhub.azk8s.cn",
      "https://reg-mirror.qiniu.com",
      "https://registry.docker-cn.com"
  ]
}

安装gitlab

docker pull gitlab/gitlab-ce

在本机准备gitlab工作目录
mkdir -p /data/docker/gitlab/{config,data,logs}

docker run -d \
--detach \
--name gitlab \
--hostname 192.168.2.120 \
--restart always \
-p 10443:443 -p 10080:80 -p 10022:22 \
-v /app/gitlab/config:/etc/gitlab \
-v /app/gitlab/data:/var/opt/gitlab \
-v /app/gitlab/logs:/var/log/gitlab \
-v /etc/localtime:/etc/localtime:ro \
--privileged=true \
gitlab/gitlab-ce

编辑配置文件

vim /app/gitlab/config/gitlab.rb

修改如下几个端口

# gitlab_rails['gitlab_shell_ssh_port'] = 22
gitlab_rails['gitlab_shell_ssh_port'] = 10022
刷新配置
# 进入容器
docker exec -it gitlab /bin/bash
# 刷新配置
gitlab-ctl reconfigure
# 重启
gitlab-ctl restart

这时再打开ip:10080,克隆项目的时候就可以看到ssh克隆地址上有端口号10022了。

修改http克隆时的端口号

vim /app/gitlab/data/gitlab-rails/etc/gitlab.yml

## Web server settings下面的port后面的数字改成10080即可,然后执行docker exec -it gitlab-id /bin/bash进入容器内,执行

gitlab-ctl restart

这时再打开ip:10080,克隆项目的时候就可以看到http克隆地址上有端口号10080了。

安装onlyoffice

准备工作

sudo mkdir -p "/app/onlyoffice/mysql/conf.d";
sudo mkdir -p "/app/onlyoffice/mysql/data";
sudo mkdir -p "/app/onlyoffice/mysql/initdb";
sudo mkdir -p "/app/onlyoffice/mysql/logs";
chown 999:999 /app/onlyoffice/mysql/logs;

sudo mkdir -p "/app/onlyoffice/CommunityServer/data";
sudo mkdir -p "/app/onlyoffice/CommunityServer/logs";

sudo mkdir -p "/app/onlyoffice/DocumentServer/data";
sudo mkdir -p "/app/onlyoffice/DocumentServer/logs";

sudo docker network create --driver bridge onlyoffice

安装mysql

准备onlyoffice的配置文件

echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048
log-error = /var/log/mysql/error.log" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf
sudo chmod 0644 /app/onlyoffice/mysql/conf.d/onlyoffice.cnf

准备mysql的初始化文件

echo "CREATE USER 'onlyoffice_user'@'localhost' IDENTIFIED BY 'onlyoffice_pass';
CREATE USER 'mail_admin'@'localhost' IDENTIFIED BY 'Isadmin123';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY 'my-secret-pw';
GRANT ALL PRIVILEGES ON * . * TO 'onlyoffice_user'@'%' IDENTIFIED BY 'onlyoffice_pass';
GRANT ALL PRIVILEGES ON * . * TO 'mail_admin'@'%' IDENTIFIED BY 'Isadmin123';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql

启动mysql

sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server -p 3306:3306 \
 -v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \
 -v /app/onlyoffice/mysql/data:/var/lib/mysql \
 -v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \
 -v /app/onlyoffice/mysql/logs:/var/log/mysql \
 -e MYSQL_ROOT_PASSWORD=my-secret-pw \
 -e MYSQL_DATABASE=onlyoffice \
 mysql:5.7

安装documentserver

sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server \
    -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  \
    -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
    -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql \
    onlyoffice/documentserver

安装communityserver

docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 \
	 -e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \
	 -e MYSQL_SERVER_DB_NAME=onlyoffice \
	 -e MYSQL_SERVER_HOST=onlyoffice-mysql-server \
	 -e MYSQL_SERVER_USER=onlyoffice_user \
	 -e MYSQL_SERVER_PASS=onlyoffice_pass \
	 -e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \
	 -v /D/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
	 -v /D/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
	 onlyoffice/communityserver

离线安装nextcloud应用

不知道什么原因,打开nextcloud的App页面,只有“您的应用”、“已启用的应用”、“已禁用的应用”、“应用捆装包”、“精选应用”和“开发者文档”,无法在线安装应用,故使用离线方式安装应用。

离线安装应用的步骤如下:

  1. 打开NextCloud的网站:https://apps.nextcloud.com/
  2. 找到需要的App
  3. 下载与你版本相应的tar包,其中nextcloud的版本可以在“设置”->“概览”里看
  4. 解压下载的tar包
    1. tar -xvf xxx.tar.gz
  5. 使用docker cp命令将解压后的应用复制到主机:
    1. docker cp app_name container_name_or_container_id:/var/www/html/apps/app_name
    2. 注意1:上面命令中的最后,也就是容器的路径最后不要有’/‘,因为有’/‘表示复制到该路径下,没有’/‘表示重命名为app_name
    3. 注意2:上面命令中的app_namecontainer_name_or_container_id根据实际情况填写
  6. 重启主机
    1. sudo docker restart nextCloud
  7. 打开应用:http://ipAddress:8080/settings/apps找到刚安装的应用,并启用,输入密码之后就完成了应用的离线安装

发表评论

电子邮件地址不会被公开。 必填项已用*标注

8 + 4 =

− 7 = 2