OnlyOffice Integration.
# Files settings
files:
docservice:
url:
site: http://127.0.0.1:18080/onlyoffice/
# Logo settings
logo:
url: https://www.incarcloud.com./gradlew clean build# java-backend with oracle-jdk8(alpine)
# Author: InCar
# Version: 1.0
# Build:
# 1. docker build --build-arg APP_NAME=java-backed \
# --build-arg APP_VERSION=1.0 \
# -t s1:5000/harbor_project/java-backed:1.0 .
# Testing:
# 1. docker run --rm -it --name backed -p 8080:8080 s1:5000/harbor_project/java-backend:1.0
# 2. docker exec -it backend ash
FROM s1:5000/library/oracle-jdk8:latest
MAINTAINER InCar
ARG APP_NAME=java-backed
ARG APP_VERSION=1.0
ENV APP_NAME=${APP_NAME} \
APP_VERSION=${APP_VERSION}
EXPOSE 4000
WORKDIR /app
ADD build/libs/${APP_NAME}-${APP_VERSION}.jar /app/deploy.jar
ENTRYPOINT ["java", "-jar", "deploy.jar", "-Dsun.net.http.allowRestrictedHeaders=true"]docker build --build-arg APP_NAME=onlydoc \
--build-arg APP_VERSION=1.0.2 \
-t onlydoc:1.0.2 .| No. | Service | Inter Port | Outer Port | Remark |
|---|---|---|---|---|
| 1 | onlyoffice | 80 |
8080 |
will proxy by nginx |
| 2 | onlydoc | 4000 |
4000 |
# yaml
cat > docker-compose.yaml <<-'EOF'
version: "3"
services:
onlyoffice:
image: onlyoffice/documentserver:6.4.2
container_name: onlyoffice_community_edition
# 仅支持预览可忽略卷
# volumes:
# - ./onlyoffice/logs:/var/log/onlyoffice
# - ./onlyoffice/data:/var/www/onlyoffice/Data
# - ./onlyoffice/lib:/var/lib/onlyoffice
# - ./onlyoffice/db:/var/lib/postgresql
# 自定义域名,请配置docker内网映射,否则OnlyOffice下载文件有问题
# 实际生产环境配置内网IP可加速OnlyOffice下载文件
# extra_hosts:
# - "project.domain.com:192.168.0.100"
dns:
- 8.8.8.8
environment:
- ONLYOFFICE_HTTPS_HSTS_ENABLED=false
ports:
- 8080:80
restart: always
deploy:
restart_policy:
condition: on-failure
onlydoc:
image: onlydoc:1.0.2
container_name: onlydoc_integration_edition
environment:
- DOCUMENTSERVER_SITE=http://127.0.0.1:18080/onlyoffice/
ports:
- 4000:4000
restart: always
deploy:
restart_policy:
condition: on-failure
EOF
# start
docker-compose up -dmap $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream onlydoc-servers {
server 127.0.0.1:4000;
}
upstream onlyoffice-servers {
server 127.0.0.1:8080;
}
server {
listen 18080;
server_name localhost;
charset utf-8;
# onlydoc
location ^~ /onlydoc/ {
proxy_pass http://onlydoc-servers/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host/onlydoc;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
}
# onlyoffice
location ^~ /onlyoffice/ {
proxy_pass http://onlyoffice-servers/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host/onlyoffice;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_connect_timeout 15s;
proxy_read_timeout 120s;
proxy_send_timeout 60s;
}
# add your project proxy here
}# valid
/usr/local/nginx/sbin/nginx -t
# reload
/usr/local/nginx/sbin/nginx -s reloadhttp://127.0.0.1:18080/onlydoc/editor?type=desktop
&action=view
&fileName=test.xlsx
&fileKey=test2xlsx
&fileUrl=http://10.0.11.25:9081/1,0305f2988b
&thirdUri=true
&lang=zh
&displayName=张三
| No. | Name | Type | Remark |
|---|---|---|---|
| 1 | type | string |
类型:desktop-桌面(默认),mobile-手机,embedded-嵌入式 |
| 2 | action | string |
动作:view-预览 |
| 3 | fileName | string |
文件名称 |
| 4 | fileKey | string |
文件在OnlyOffice缓存Key,必需唯一,默认同fileName |
| 5 | fileUrl | string |
文件外部URL,当thirdUri=true时有效 |
| 6 | thirdUri | boolean |
使用文件外部URL |
| 7 | lang | string |
语言:en-英文(默认),zh-中文 |
| 8 | displayName | string |
使用人,没有显示“匿名” |
注:
fileUrl带参数,请对URL进行编码。
| No. | File | Testing | Remark |
|---|---|---|---|
| 1 | test.xlsx | Excel | InCar Only |
| 2 | test.docx | Word | |
| 3 | test.pptx | PowerPoint |
It is recommended to separate view and access, adding your token to fileUrl.