Docker
This directory containing instruction for developers, who want to change something in sdkjs or web-apps or server module, but don't want to compile pretty compilcated core product to make those changes.
Installing ONLYOFFICE Docs
How to use
Windows
Note: You need the latest Docker Desktop for Windows installed.
docker pull onlyoffice/documentserver
Linux or macOS
Note: You need the latest Docker version installed.
You might need to pull onlyoffice/documentserver image:
Note: Do not prefix docker command with sudo. This instruction show how to use docker without sudo.
docker pull onlyoffice/documentserver
Create develop image
To create a image with the ability to include external non-minified sdkjs code, use the following command:
git clone -b feature/docker-instruction https://github.com/ONLYOFFICE/build_tools.git
cd build_tools/develop
sed -i 's,https://github.com,-b feature/docker-instruction https://github.com,' Dockerfile
docker build -t documentserver-develop .
Note: The dot at the end is required.
Connecting external folders
Clone module
At first clone modules to the working dir
cd ../..
git clone https://github.com/ONLYOFFICE/sdkjs.git
git clone https://github.com/ONLYOFFICE/web-apps.git
git clone https://github.com/ONLYOFFICE/server.git
Start server with external folders
To mount external folders to the container,
you need to pass the "-v" parameter
along with the relative paths to the required folders.
The folders sdkjs and web-apps are required for proper development workflow.
The folders server is optional
Note: server start with sdkjs and web-apps takes 10 minutes
and takes 15 minutes with server
Windows (cmd)
run with sdkjs and web-apps
docker run -i -t -p 80:80 --restart=always ^
-v %cd%/sdkjs:/var/www/onlyoffice/documentserver/sdkjs ^
-v %cd%/web-apps:/var/www/onlyoffice/documentserver/web-apps ^
documentserver-develop
run with sdkjs, web-apps and server
docker run -i -t -p 80:80 --restart=always ^
-v %cd%/sdkjs:/var/www/onlyoffice/documentserver/sdkjs ^
-v %cd%/web-apps:/var/www/onlyoffice/documentserver/web-apps ^
-v %cd%/server:/var/www/onlyoffice/documentserver/server ^
documentserver-develop
Linux or macOS (bash)
run with sdkjs and web-apps
docker run -i -t -p 80:80 --restart=always \
-v $(pwd)/sdkjs:/var/www/onlyoffice/documentserver/sdkjs \
-v $(pwd)/web-apps:/var/www/onlyoffice/documentserver/web-apps \
documentserver-develop
run with sdkjs, web-apps and server
docker run -i -t -p 80:80 --restart=always \
-v $(pwd)/sdkjs:/var/www/onlyoffice/documentserver/sdkjs \
-v $(pwd)/web-apps:/var/www/onlyoffice/documentserver/web-apps \
-v $(pwd)/server:/var/www/onlyoffice/documentserver/server \
documentserver-develop
Open editor
After the server starts successfully, you will see Docker log messages like this. *[Date] [WARN] [localhost] [docId] [userId] nodeJS
- Express server listening on port 8000 in production-linux mode. Version:*
To try the document editor, open a browser tab and type http://localhost/example into the URL bar.
Modify sources
To change something in sdkjs do the following things
- Edit source file. Let's insert an image url into any open document. Do the following command.
sed -i "s,this.sendEvent('asc_onDocumentContentReady');,this.sendEvent('asc_onDocumentContentReady');\n this.AddImageUrl(['http://localhost/example/images/logo.png']);," sdkjs\common\apiBase.js
- Delete browser cache or hard reload the page
Ctrl + Shift + R - Open new file in browser
To change something in server do the following things
- Edit source file. Let's send
"Hello World!"chart message every time a document is opened.Do the following command
sed -i 's#sendAuthInfo(ctx, conn, bIsRestore, participantsMap, opt_hasForgotten, opt_openedAt) {#sendAuthInfo(ctx, conn, bIsRestore, participantsMap, opt_hasForgotten, opt_openedAt) {\nyield* onMessage(ctx, conn, {"message": "Hello World!"});#' server\DocService\sources\DocsCoServer.js
- Restart document server process
docker exec -it CONTAINER_ID supervisorctl restart all
- Open new file in browser