Compare commits
92 Commits
master
...
feature/cu
Author | SHA1 | Date | |
---|---|---|---|
c80e895b9e | |||
bfbb2e18eb | |||
fb03be5097 | |||
266221b6e0 | |||
|
6afcf4c6ff | ||
f95931cf4f | |||
4203dafe94 | |||
c523250337 | |||
c312ba632b | |||
13f67192bf | |||
a9d9ba70a8 | |||
2813bd572f | |||
1cd5d9a2e9 | |||
6d0c14ebc3 | |||
33ac365992 | |||
9d9e76acb1 | |||
26f8014056 | |||
aff3c13d5c | |||
58f8ef4d27 | |||
415fe6e605 | |||
3f2087a60c | |||
5c567ad109 | |||
f4e91b7b3d | |||
|
9f88fc61f0 | ||
0cb0448c44 | |||
191ab2db6f | |||
3545708a25 | |||
5aa3339a6f | |||
c959e430f2 | |||
dc099c3eb1 | |||
bbd4d8013d | |||
2ee869d9bb | |||
3d8d1c5e21 | |||
b567e10880 | |||
1517c48add | |||
e248c9d317 | |||
bbc46c5676 | |||
893e3dca78 | |||
bb30917778 | |||
4a3b1d943e | |||
e1c2632e09 | |||
67821b7297 | |||
5edc87293a | |||
40d19b1746 | |||
f745a71e43 | |||
8f0ed06219 | |||
d4efd04825 | |||
d8eff9bdb8 | |||
242340255b | |||
d7ea6fad02 | |||
ad047bc372 | |||
e02510be1d | |||
bb5b8cccdd | |||
ba23f9bb7b | |||
84afb50b66 | |||
aa6545bfe1 | |||
4b888c6640 | |||
a34bedef1e | |||
f6dca051ac | |||
ca73c5b0c4 | |||
807215a0cb | |||
2381fcf68f | |||
8ee516850b | |||
0f9d61b9f0 | |||
bbce172bba | |||
5f8718c78d | |||
76e439bad3 | |||
d8a535432d | |||
6956adc231 | |||
310f2d5dc5 | |||
61c920555b | |||
8b0bca3a44 | |||
74e94c0a10 | |||
dc1274fb88 | |||
3b9c56c5f4 | |||
a56a46236c | |||
17f6195d8c | |||
31bf677340 | |||
8e751923d9 | |||
ebdffb55ea | |||
ac496b82a2 | |||
6d6116c5ce | |||
11c322f03b | |||
2a36d19707 | |||
4a7f1710de | |||
a4d69eebe8 | |||
e173c5932d | |||
fbaace1941 | |||
a0b9e56097 | |||
06c63bdb6f | |||
d5b009554e | |||
eefb4b5e2e |
24
.github/workflows/cron-build.yml
vendored
24
.github/workflows/cron-build.yml
vendored
@ -18,10 +18,29 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
all_branches=$(git ls-remote -hq | sed -n 's/^[0-9a-f]\{40\}\s\+refs\/heads\//''/p')
|
all_branches=$(git ls-remote -hq | sed -n 's/^[0-9a-f]\{40\}\s\+refs\/heads\//''/p')
|
||||||
matching_branches=""
|
matching_branches=""
|
||||||
|
hashes=""
|
||||||
|
|
||||||
for branch in $all_branches; do
|
for branch in $all_branches; do
|
||||||
if [[ $branch =~ ^release/v[0-9]+ || $branch =~ ^hotfix/v[0-9]+ || $branch == "develop" ]]; then
|
if [[ $branch =~ ^release/v[0-9]+ || $branch =~ ^hotfix/v[0-9]+ || $branch == "develop" ]]; then
|
||||||
matching_branches="${matching_branches},\"${branch}\""
|
matching_branches="${matching_branches},\"${branch}\""
|
||||||
|
curl_buildtools=$(curl -L \
|
||||||
|
-H "Accept: application/vnd.github+json" \
|
||||||
|
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||||
|
"https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/commits/${branch}" | jq -r '.sha')
|
||||||
|
|
||||||
|
curl_client=$(curl -L \
|
||||||
|
-H "Accept: application/vnd.github+json" \
|
||||||
|
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||||
|
"https://api.github.com/repos/ONLYOFFICE/DocSpace-client/commits/${branch}" | jq -r '.sha')
|
||||||
|
|
||||||
|
curl_server=$(curl -L \
|
||||||
|
-H "Accept: application/vnd.github+json" \
|
||||||
|
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||||
|
"https://api.github.com/repos/ONLYOFFICE/DocSpace-server/commits/${branch}" | jq -r '.sha')
|
||||||
|
|
||||||
|
echo "${branch}_buildtools_hash=${curl_buildtools}" >> $GITHUB_ENV
|
||||||
|
echo "${branch}_client_hash=${curl_client}" >> $GITHUB_ENV
|
||||||
|
echo "${branch}_server_hash=${curl_server}" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -35,12 +54,15 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "${{ steps.list-branches.outputs.json_output }}"
|
echo "${{ steps.list-branches.outputs.json_output }}"
|
||||||
|
|
||||||
|
payload=$((env | grep '_hash=' | awk -F'=' '{print "\"" $1 "\": \"" $2 "\""}' | paste -sd, - | sed 's/^/{/;s/$/}/')| tr -d '[:space:]')
|
||||||
|
echo "Payload JSON: $payload"
|
||||||
|
|
||||||
curl \
|
curl \
|
||||||
-X POST \
|
-X POST \
|
||||||
-u "${{ secrets.USERNAME}}:${{secrets.TOKEN}}" \
|
-u "${{ secrets.USERNAME}}:${{secrets.TOKEN}}" \
|
||||||
"https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/dispatches" \
|
"https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/dispatches" \
|
||||||
-H "Accept: application/vnd.github.everest-preview+json" \
|
-H "Accept: application/vnd.github.everest-preview+json" \
|
||||||
--data '{"event_type": "cron-trigger-action", "client_payload": { "branches": ${{ steps.list-branches.outputs.json_output }}}}'
|
--data '{"event_type": "cron-trigger-action", "client_payload": { "branches": ${{ steps.list-branches.outputs.json_output }}, "hashes": '$payload' } }'
|
||||||
|
|
||||||
curl \
|
curl \
|
||||||
-X POST \
|
-X POST \
|
||||||
|
9
.github/workflows/main-build.yml
vendored
9
.github/workflows/main-build.yml
vendored
@ -62,6 +62,12 @@ jobs:
|
|||||||
DOCKER_TAG=${PRODUCT_VERSION}.${{github.run_number}}
|
DOCKER_TAG=${PRODUCT_VERSION}.${{github.run_number}}
|
||||||
fi
|
fi
|
||||||
export DOCKER_TAG
|
export DOCKER_TAG
|
||||||
|
BUILDTOOLS_ENV="${{ github.event.client_payload.hashes[ format('{0}_buildtools_hash', matrix.branch)] }}"
|
||||||
|
SERVER_ENV="${{ github.event.client_payload.hashes[ format('{0}_server_hash', matrix.branch)] }}"
|
||||||
|
CLIENT_ENV="${{ github.event.client_payload.hashes[ format('{0}_client_hash', matrix.branch)] }}"
|
||||||
|
echo "buildtools_hash: $BUILDTOOLS_ENV"
|
||||||
|
echo "server_hash: $SERVER_ENV"
|
||||||
|
echo "client_hash: $CLIENT_ENV"
|
||||||
docker buildx bake -f build.yml \
|
docker buildx bake -f build.yml \
|
||||||
--set *.args.GIT_BRANCH=${{ matrix.branch }} \
|
--set *.args.GIT_BRANCH=${{ matrix.branch }} \
|
||||||
--set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \
|
--set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \
|
||||||
@ -69,6 +75,9 @@ jobs:
|
|||||||
--set *.platform=linux/amd64 \
|
--set *.platform=linux/amd64 \
|
||||||
--set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \
|
--set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \
|
||||||
--set *.args.BUILD_NUMBER=${{github.run_number}} \
|
--set *.args.BUILD_NUMBER=${{github.run_number}} \
|
||||||
|
--set *.args.BUILDTOOLS_COMMIT=$BUILDTOOLS_ENV \
|
||||||
|
--set *.args.SERVER_COMMIT=$SERVER_ENV \
|
||||||
|
--set *.args.CLIENT_COMMIT=$CLIENT_ENV \
|
||||||
--push
|
--push
|
||||||
|
|
||||||
echo "version=${DOCKER_TAG}" >> "$GITHUB_OUTPUT"
|
echo "version=${DOCKER_TAG}" >> "$GITHUB_OUTPUT"
|
||||||
|
@ -11,13 +11,14 @@ def help():
|
|||||||
# Display Help
|
# Display Help
|
||||||
print("Build and run backend and working environment. (Use 'yarn start' to run client -> https://github.com/ONLYOFFICE/DocSpace-client)")
|
print("Build and run backend and working environment. (Use 'yarn start' to run client -> https://github.com/ONLYOFFICE/DocSpace-client)")
|
||||||
print()
|
print()
|
||||||
print("Syntax: available params [-h|f|s|c|d|]")
|
print("Syntax: available params [-h|f|s|c|d|i")
|
||||||
print("options:")
|
print("options:")
|
||||||
print("h Print this Help.")
|
print("h Print this Help.")
|
||||||
print("f Force rebuild base images.")
|
print("f Force rebuild base images.")
|
||||||
print("s Run as SAAS otherwise as STANDALONE.")
|
print("s Run as SAAS otherwise as STANDALONE.")
|
||||||
print("c Run as COMMUNITY otherwise ENTERPRISE.")
|
print("c Run as COMMUNITY otherwise ENTERPRISE.")
|
||||||
print("d Run dnsmasq.")
|
print("d Run dnsmasq.")
|
||||||
|
print("i Run identity (oauth2).")
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
||||||
@ -37,6 +38,8 @@ if local_ip == "127.0.0.1":
|
|||||||
doceditor = f"{local_ip}:5013"
|
doceditor = f"{local_ip}:5013"
|
||||||
login = f"{local_ip}:5011"
|
login = f"{local_ip}:5011"
|
||||||
client = f"{local_ip}:5001"
|
client = f"{local_ip}:5001"
|
||||||
|
identity_auth = f"{local_ip}:8080"
|
||||||
|
identity_api = f"{local_ip}:9090"
|
||||||
management = f"{local_ip}:5015"
|
management = f"{local_ip}:5015"
|
||||||
portal_url = f"http://{local_ip}"
|
portal_url = f"http://{local_ip}"
|
||||||
|
|
||||||
@ -44,13 +47,14 @@ force = False
|
|||||||
dns = False
|
dns = False
|
||||||
standalone = True
|
standalone = True
|
||||||
community = False
|
community = False
|
||||||
|
identity = False
|
||||||
|
|
||||||
migration_type = "STANDALONE" # SAAS
|
migration_type = "STANDALONE" # SAAS
|
||||||
installation_type = "ENTERPRISE"
|
installation_type = "ENTERPRISE"
|
||||||
document_server_image_name = "onlyoffice/documentserver-de:latest"
|
document_server_image_name = "onlyoffice/documentserver-de:latest"
|
||||||
|
|
||||||
# Get the options
|
# Get the options
|
||||||
opts, args = getopt.getopt(sys.argv[1:], "hfscd")
|
opts, args = getopt.getopt(sys.argv[1:], "hfscdi")
|
||||||
for opt, arg in opts:
|
for opt, arg in opts:
|
||||||
if opt == "-h":
|
if opt == "-h":
|
||||||
help()
|
help()
|
||||||
@ -63,6 +67,8 @@ for opt, arg in opts:
|
|||||||
community = arg if arg else True
|
community = arg if arg else True
|
||||||
elif opt == "-d":
|
elif opt == "-d":
|
||||||
dns = arg if arg else True
|
dns = arg if arg else True
|
||||||
|
elif opt == "-i":
|
||||||
|
identity = arg if arg else True
|
||||||
else:
|
else:
|
||||||
print("Error: Invalid '-" + opt + "' option")
|
print("Error: Invalid '-" + opt + "' option")
|
||||||
sys.exit()
|
sys.exit()
|
||||||
@ -80,6 +86,7 @@ print(f"DOCSPACE_APP_URL: {portal_url}")
|
|||||||
print()
|
print()
|
||||||
print("FORCE REBUILD BASE IMAGES:", force)
|
print("FORCE REBUILD BASE IMAGES:", force)
|
||||||
print("Run dnsmasq:", dns)
|
print("Run dnsmasq:", dns)
|
||||||
|
print("Run identity:", identity)
|
||||||
|
|
||||||
if standalone == False:
|
if standalone == False:
|
||||||
migration_type = "SAAS"
|
migration_type = "SAAS"
|
||||||
@ -182,6 +189,8 @@ os.environ["SERVICE_DOCEDITOR"] = doceditor
|
|||||||
os.environ["SERVICE_LOGIN"] = login
|
os.environ["SERVICE_LOGIN"] = login
|
||||||
os.environ["SERVICE_MANAGEMENT"] = management
|
os.environ["SERVICE_MANAGEMENT"] = management
|
||||||
os.environ["SERVICE_CLIENT"] = client
|
os.environ["SERVICE_CLIENT"] = client
|
||||||
|
os.environ["SERVICE_IDENTITY"] = identity_auth
|
||||||
|
os.environ["SERVICE_IDENTITY_API"] = identity_api
|
||||||
os.environ["ROOT_DIR"] = dir
|
os.environ["ROOT_DIR"] = dir
|
||||||
os.environ["BUILD_PATH"] = "/var/www"
|
os.environ["BUILD_PATH"] = "/var/www"
|
||||||
os.environ["SRC_PATH"] = os.path.join(dir, "publish/services")
|
os.environ["SRC_PATH"] = os.path.join(dir, "publish/services")
|
||||||
@ -191,6 +200,10 @@ os.environ["MIGRATION_TYPE"] = migration_type
|
|||||||
subprocess.run(["docker", "compose", "-f", os.path.join(dockerDir, "docspace.profiles.yml"), "-f", os.path.join(
|
subprocess.run(["docker", "compose", "-f", os.path.join(dockerDir, "docspace.profiles.yml"), "-f", os.path.join(
|
||||||
dockerDir, "docspace.overcome.yml"), "--profile", "migration-runner", "--profile", "backend-local", "up", "-d"])
|
dockerDir, "docspace.overcome.yml"), "--profile", "migration-runner", "--profile", "backend-local", "up", "-d"])
|
||||||
|
|
||||||
|
if identity:
|
||||||
|
print("Run identity")
|
||||||
|
subprocess.run(["docker-compose", "-f",os.path.join(dockerDir, "identity.yml"), "up", "-d" ])
|
||||||
|
|
||||||
print()
|
print()
|
||||||
print("Run script directory:", dir)
|
print("Run script directory:", dir)
|
||||||
print("Root directory:", dir)
|
print("Root directory:", dir)
|
||||||
|
26
build.backend.dotnet.bat
Normal file
26
build.backend.dotnet.bat
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
echo Start build backend...
|
||||||
|
echo.
|
||||||
|
|
||||||
|
cd /D "%~dp0"
|
||||||
|
call runasadmin.bat "%~dpnx0"
|
||||||
|
|
||||||
|
if %errorlevel% == 0 (
|
||||||
|
call start\stop.bat nopause
|
||||||
|
dotnet build ..\server\asc.web.slnf /fl1 /flp1:logfile=asc.web.log;verbosity=normal
|
||||||
|
echo.
|
||||||
|
)
|
||||||
|
|
||||||
|
if %errorlevel% == 0 (
|
||||||
|
call start\start.bat nopause
|
||||||
|
)
|
||||||
|
|
||||||
|
echo.
|
||||||
|
|
||||||
|
if "%1"=="nopause" goto end
|
||||||
|
pause
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:end
|
@ -31,6 +31,10 @@ if containers or images:
|
|||||||
db_command = f"docker compose -f {os.path.join(docker_dir, 'db.yml')} down --volumes"
|
db_command = f"docker compose -f {os.path.join(docker_dir, 'db.yml')} down --volumes"
|
||||||
subprocess.run(db_command, shell=True)
|
subprocess.run(db_command, shell=True)
|
||||||
|
|
||||||
|
print("Remove docker contatiners 'Identity'")
|
||||||
|
identity_command = f"docker compose -f {os.path.join(docker_dir, 'identity.yml')} down --volumes"
|
||||||
|
subprocess.run(identity_command, shell=True)
|
||||||
|
|
||||||
print("Remove docker volumes")
|
print("Remove docker volumes")
|
||||||
volumes_command = f"docker volume prune -fa"
|
volumes_command = f"docker volume prune -fa"
|
||||||
subprocess.run(volumes_command, shell=True)
|
subprocess.run(volumes_command, shell=True)
|
||||||
|
@ -38,7 +38,10 @@
|
|||||||
},
|
},
|
||||||
"themelimit": "9",
|
"themelimit": "9",
|
||||||
"oidc": {
|
"oidc": {
|
||||||
"authority": ""
|
"authority": "",
|
||||||
|
"disableValidateToken": "true",
|
||||||
|
"requireHttps": "false",
|
||||||
|
"showPII": "true"
|
||||||
},
|
},
|
||||||
"server-root": "",
|
"server-root": "",
|
||||||
"username": {
|
"username": {
|
||||||
@ -123,7 +126,7 @@
|
|||||||
"api-system": "",
|
"api-system": "",
|
||||||
"api-cache": "",
|
"api-cache": "",
|
||||||
"images": "static/images",
|
"images": "static/images",
|
||||||
"hide-settings": "Monitoring,LdapSettings,DocService,MailService,PublicPortal,ProxyHttpContent,SpamSubscription,FullTextSearch",
|
"hide-settings": "Monitoring,LdapSettings,DocService,MailService,PublicPortal,ProxyHttpContent,SpamSubscription,FullTextSearch,IdentityServer",
|
||||||
"hub": {
|
"hub": {
|
||||||
"url": "/socket.io",
|
"url": "/socket.io",
|
||||||
"internal": "http://localhost:9899/"
|
"internal": "http://localhost:9899/"
|
||||||
|
@ -9,6 +9,6 @@ server=8.8.4.4
|
|||||||
server=8.8.8.8
|
server=8.8.8.8
|
||||||
strict-order
|
strict-order
|
||||||
#serve all .company queries using a specific nameserver
|
#serve all .company queries using a specific nameserver
|
||||||
server=/site/127.0.0.1
|
server=/site/192.168.0.18
|
||||||
#explicitly define host-ip mappings
|
#explicitly define host-ip mappings
|
||||||
address=/docspace.site/127.0.0.1
|
address=/docspace.site/192.168.0.18
|
12
config/nginx/includes/server-dashboards.conf
Normal file
12
config/nginx/includes/server-dashboards.conf
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
location ^~ /dashboards/ {
|
||||||
|
auth_basic "Restricted Access";
|
||||||
|
auth_basic_user_file /etc/nginx/.htpasswd_dashboards;
|
||||||
|
|
||||||
|
rewrite ^/dashboards(/.*)$ $1 break;
|
||||||
|
proxy_pass http://127.0.0.1:5601;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_buffering off;
|
||||||
|
|
||||||
|
proxy_set_header Connection "Keep-Alive";
|
||||||
|
proxy_set_header Proxy-Connection "Keep-Alive";
|
||||||
|
}
|
@ -104,8 +104,7 @@ server {
|
|||||||
local accept_header = ngx.req.get_headers()["Accept"]
|
local accept_header = ngx.req.get_headers()["Accept"]
|
||||||
if ngx.req.get_method() == "GET" and accept_header ~= nil and string.find(accept_header, "html") and not ngx.re.match(ngx.var.request_uri, "ds-vpath|/api/") then
|
if ngx.req.get_method() == "GET" and accept_header ~= nil and string.find(accept_header, "html") and not ngx.re.match(ngx.var.request_uri, "ds-vpath|/api/") then
|
||||||
|
|
||||||
if not ngx.re.match(ngx.var.request_uri, "login|sdk|filehandler|thirdparty|confirm|error|wizard|preparation-portal|unavailable|share=.|rooms/share(.*)key=.|/s/*|token=.") then
|
if not ngx.re.match(ngx.var.request_uri, "login|oauth2|sdk|filehandler|thirdparty|confirm|error|wizard|preparation-portal|unavailable|share=.|rooms/share(.*)key=.|/s/*|token=.") then
if ngx.var.http_cookie == nil or not string.find(ngx.var.http_cookie, "asc_auth_key") then
|
||||||
if ngx.var.http_cookie == nil or not string.find(ngx.var.http_cookie, "asc_auth_key") then
|
|
||||||
if ngx.var.request_uri == "/" then
|
if ngx.var.request_uri == "/" then
|
||||||
return ngx.redirect("/login")
|
return ngx.redirect("/login")
|
||||||
else
|
else
|
||||||
@ -168,18 +167,7 @@ server {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
location ^~ /dashboards/ {
|
include /etc/nginx/includes/server-*.conf;
|
||||||
auth_basic "Restricted Access";
|
|
||||||
auth_basic_user_file /etc/nginx/.htpasswd_dashboards;
|
|
||||||
|
|
||||||
rewrite ^/dashboards(/.*)$ $1 break;
|
|
||||||
proxy_pass http://127.0.0.1:5601;
|
|
||||||
proxy_redirect off;
|
|
||||||
proxy_buffering off;
|
|
||||||
|
|
||||||
proxy_set_header Connection "Keep-Alive";
|
|
||||||
proxy_set_header Proxy-Connection "Keep-Alive";
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://127.0.0.1:5001;
|
proxy_pass http://127.0.0.1:5001;
|
||||||
@ -333,7 +321,26 @@ server {
|
|||||||
location ~* /migration {
|
location ~* /migration {
|
||||||
proxy_pass http://127.0.0.1:5034;
|
proxy_pass http://127.0.0.1:5034;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
location ~* /(clients|scopes) {
|
||||||
|
proxy_pass http://127.0.0.1:9090;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* /oauth2 {
|
||||||
|
rewrite api/2.0/(.*) /$1 break;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_pass http://127.0.0.1:8080;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
location /oauth2/.well-known/openid-configuration {
|
||||||
|
rewrite oauth2/(.*) /$1 break;
|
||||||
|
proxy_pass http://127.0.0.1:8080;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /oauth2 {
|
||||||
|
proxy_pass http://127.0.0.1:8080;
|
||||||
|
}
|
||||||
|
|
||||||
location /sso {
|
location /sso {
|
||||||
rewrite sso/(.*) /$1 break;
|
rewrite sso/(.*) /$1 break;
|
||||||
|
@ -30,9 +30,11 @@ def fetchCommits(url, type):
|
|||||||
print("Error folder does not exists", path)
|
print("Error folder does not exists", path)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
branch_env = f"{type.upper()}_BRANCH"
|
||||||
|
branch = os.environ.get(branch_env)
|
||||||
repo = Repo(path)
|
repo = Repo(path)
|
||||||
|
|
||||||
info = f"| [DocSpace-{type}]({url}) | [{repo.active_branch.name}]({url}/tree/{repo.active_branch.name}) | [{repo.head.commit}]({url}/commit/{repo.head.commit}) |{os.linesep}"
|
info = f"| [DocSpace-{type}]({url}) | [{branch}]({url}/tree/{branch}) | [{repo.head.commit}]({url}/commit/{repo.head.commit}) |{os.linesep}"
|
||||||
|
|
||||||
commits_str = repo.git.log(f"--pretty=format: {format}", "--no-merges", f"--since={LIMIT_DAYS}.days")
|
commits_str = repo.git.log(f"--pretty=format: {format}", "--no-merges", f"--since={LIMIT_DAYS}.days")
|
||||||
#print(commits_str)
|
#print(commits_str)
|
||||||
|
@ -1,127 +1,145 @@
|
|||||||
# docker-compose tags #
|
# docker-compose tags #
|
||||||
PRODUCT=onlyoffice
|
PRODUCT=onlyoffice
|
||||||
REPO=${PRODUCT}
|
REPO=${PRODUCT}
|
||||||
INSTALLATION_TYPE=COMMUNITY
|
INSTALLATION_TYPE=COMMUNITY
|
||||||
STATUS=""
|
STATUS=""
|
||||||
DOCKER_IMAGE_PREFIX=${STATUS}docspace
|
DOCKER_IMAGE_PREFIX=${STATUS}docspace
|
||||||
DOCKER_TAG=latest
|
DOCKER_TAG=latest
|
||||||
CONTAINER_PREFIX=${PRODUCT}-
|
CONTAINER_PREFIX=${PRODUCT}-
|
||||||
MYSQL_VERSION=8.3.0
|
MYSQL_VERSION=8.3.0
|
||||||
MYSQL_IMAGE=mysql:${MYSQL_VERSION}
|
MYSQL_IMAGE=mysql:${MYSQL_VERSION}
|
||||||
SERVICE_PORT=5050
|
SERVICE_PORT=5050
|
||||||
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
|
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
|
||||||
DOCKERFILE=Dockerfile.app
|
DOCKERFILE=Dockerfile.app
|
||||||
APP_DOTNET_ENV=""
|
APP_DOTNET_ENV=""
|
||||||
EXTERNAL_PORT="80"
|
EXTERNAL_PORT="80"
|
||||||
|
|
||||||
# opensearch stack #
|
# opensearch stack #
|
||||||
ELK_VERSION=2.11.1
|
ELK_VERSION=2.11.1
|
||||||
ELK_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch
|
ELK_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch
|
||||||
ELK_SHEME=http
|
ELK_SHEME=http
|
||||||
ELK_HOST=""
|
ELK_HOST=""
|
||||||
ELK_PORT=9200
|
ELK_PORT=9200
|
||||||
DASHBOARDS_VERSION=2.11.1
|
DASHBOARDS_VERSION=2.11.1
|
||||||
DASHBOARDS_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch-dashboards
|
DASHBOARDS_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch-dashboards
|
||||||
DASHBOARDS_USERNAME=onlyoffice
|
DASHBOARDS_USERNAME=onlyoffice
|
||||||
DASHBOARDS_PASSWORD=onlyoffice
|
DASHBOARDS_PASSWORD=onlyoffice
|
||||||
FLUENT_BIT_VERSION=3.0.2
|
FLUENT_BIT_VERSION=3.0.2
|
||||||
FLUENT_BIT_CONTAINER_NAME=${CONTAINER_PREFIX}fluent-bit
|
FLUENT_BIT_CONTAINER_NAME=${CONTAINER_PREFIX}fluent-bit
|
||||||
|
|
||||||
# app service environment #
|
# app service environment #
|
||||||
ENV_EXTENSION=none
|
ENV_EXTENSION=none
|
||||||
APP_CORE_BASE_DOMAIN=localhost
|
APP_CORE_BASE_DOMAIN=localhost
|
||||||
APP_URL_PORTAL="http://localhost:8092"
|
APP_URL_PORTAL="http://localhost:8092"
|
||||||
OAUTH_REDIRECT_URL="https://service.onlyoffice.com/oauth2.aspx"
|
OAUTH_REDIRECT_URL="https://service.onlyoffice.com/oauth2.aspx"
|
||||||
WRONG_PORTAL_NAME_URL=""
|
WRONG_PORTAL_NAME_URL=""
|
||||||
LOG_LEVEL="Warning"
|
LOG_LEVEL="Warning"
|
||||||
DEBUG_INFO="false"
|
DEBUG_INFO="false"
|
||||||
|
|
||||||
APP_KNOWN_PROXIES=""
|
APP_KNOWN_PROXIES=""
|
||||||
APP_KNOWN_NETWORKS=""
|
APP_KNOWN_NETWORKS=""
|
||||||
APP_CORE_MACHINEKEY=your_core_machinekey
|
APP_CORE_MACHINEKEY=your_core_machinekey
|
||||||
|
|
||||||
CERTIFICATE_PATH=""
|
CERTIFICATE_PATH=""
|
||||||
CERTIFICATE_KEY_PATH=""
|
CERTIFICATE_KEY_PATH=""
|
||||||
DHPARAM_PATH=""
|
DHPARAM_PATH=""
|
||||||
|
|
||||||
# docs #
|
# docs #
|
||||||
DOCUMENT_CONTAINER_NAME=${CONTAINER_PREFIX}document-server
|
DOCUMENT_CONTAINER_NAME=${CONTAINER_PREFIX}document-server
|
||||||
DOCUMENT_SERVER_URL_EXTERNAL=""
|
DOCUMENT_SERVER_URL_EXTERNAL=""
|
||||||
DOCUMENT_SERVER_JWT_SECRET=your_jwt_secret
|
DOCUMENT_SERVER_JWT_SECRET=your_jwt_secret
|
||||||
DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt
|
DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt
|
||||||
DOCUMENT_SERVER_URL_PUBLIC=/ds-vpath/
|
DOCUMENT_SERVER_URL_PUBLIC=/ds-vpath/
|
||||||
|
|
||||||
# redis #
|
# redis #
|
||||||
REDIS_CONTAINER_NAME=${CONTAINER_PREFIX}redis
|
REDIS_CONTAINER_NAME=${CONTAINER_PREFIX}redis
|
||||||
REDIS_HOST=""
|
REDIS_HOST=""
|
||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
REDIS_USER_NAME=""
|
REDIS_USER_NAME=""
|
||||||
REDIS_PASSWORD=""
|
REDIS_PASSWORD=""
|
||||||
|
|
||||||
# rabbitmq #
|
# rabbitmq #
|
||||||
RABBIT_CONTAINER_NAME=${CONTAINER_PREFIX}rabbitmq
|
RABBIT_CONTAINER_NAME=${CONTAINER_PREFIX}rabbitmq
|
||||||
RABBIT_HOST=""
|
RABBIT_HOST=""
|
||||||
RABBIT_PORT=5672
|
RABBIT_PORT=5672
|
||||||
RABBIT_VIRTUAL_HOST=/
|
RABBIT_VIRTUAL_HOST=/
|
||||||
RABBIT_USER_NAME=guest
|
RABBIT_USER_NAME=guest
|
||||||
RABBIT_PASSWORD=guest
|
RABBIT_PASSWORD=guest
|
||||||
|
|
||||||
# mysql #
|
# mysql #
|
||||||
MYSQL_CONTAINER_NAME=${CONTAINER_PREFIX}mysql-server
|
MYSQL_CONTAINER_NAME=${CONTAINER_PREFIX}mysql-server
|
||||||
MYSQL_HOST=""
|
MYSQL_HOST=""
|
||||||
MYSQL_PORT=3306
|
MYSQL_PORT=3306
|
||||||
MYSQL_ROOT_PASSWORD=my-secret-pw
|
MYSQL_ROOT_PASSWORD=my-secret-pw
|
||||||
MYSQL_DATABASE=docspace
|
MYSQL_DATABASE=docspace
|
||||||
MYSQL_USER=${PRODUCT}_user
|
MYSQL_USER=${PRODUCT}_user
|
||||||
MYSQL_PASSWORD=${PRODUCT}_pass
|
MYSQL_PASSWORD=${PRODUCT}_pass
|
||||||
DATABASE_MIGRATION=false
|
DATABASE_MIGRATION=false
|
||||||
MIGRATION_TYPE="SAAS"
|
MIGRATION_TYPE="SAAS"
|
||||||
|
|
||||||
# service host #
|
# service host #
|
||||||
API_SYSTEM_HOST=${CONTAINER_PREFIX}api-system
|
API_SYSTEM_HOST=${CONTAINER_PREFIX}api-system
|
||||||
BACKUP_HOST=${CONTAINER_PREFIX}backup
|
BACKUP_HOST=${CONTAINER_PREFIX}backup
|
||||||
BACKUP_BACKGRUOND_TASKS_HOST=${CONTAINER_PREFIX}backup-background-tasks
|
BACKUP_BACKGRUOND_TASKS_HOST=${CONTAINER_PREFIX}backup-background-tasks
|
||||||
CLEAR_EVENTS_HOST=${CONTAINER_PREFIX}clear-events
|
CLEAR_EVENTS_HOST=${CONTAINER_PREFIX}clear-events
|
||||||
FILES_HOST=${CONTAINER_PREFIX}files
|
FILES_HOST=${CONTAINER_PREFIX}files
|
||||||
FILES_SERVICES_HOST=${CONTAINER_PREFIX}files-services
|
FILES_SERVICES_HOST=${CONTAINER_PREFIX}files-services
|
||||||
STORAGE_MIGRATION_HOST=${CONTAINER_PREFIX}storage-migration
|
STORAGE_MIGRATION_HOST=${CONTAINER_PREFIX}storage-migration
|
||||||
NOTIFY_HOST=${CONTAINER_PREFIX}notify
|
NOTIFY_HOST=${CONTAINER_PREFIX}notify
|
||||||
PEOPLE_SERVER_HOST=${CONTAINER_PREFIX}people-server
|
PEOPLE_SERVER_HOST=${CONTAINER_PREFIX}people-server
|
||||||
SOCKET_HOST=${CONTAINER_PREFIX}socket
|
SOCKET_HOST=${CONTAINER_PREFIX}socket
|
||||||
STUDIO_NOTIFY_HOST=${CONTAINER_PREFIX}studio-notify
|
STUDIO_NOTIFY_HOST=${CONTAINER_PREFIX}studio-notify
|
||||||
API_HOST=${CONTAINER_PREFIX}api
|
API_HOST=${CONTAINER_PREFIX}api
|
||||||
STUDIO_HOST=${CONTAINER_PREFIX}studio
|
STUDIO_HOST=${CONTAINER_PREFIX}studio
|
||||||
SSOAUTH_HOST=${CONTAINER_PREFIX}ssoauth
|
SSOAUTH_HOST=${CONTAINER_PREFIX}ssoauth
|
||||||
TELEGRAMREPORTS_HOST=${CONTAINER_PREFIX}telegramreports
|
TELEGRAMREPORTS_HOST=${CONTAINER_PREFIX}telegramreports
|
||||||
MIGRATION_RUNNER_HOST=${CONTAINER_PREFIX}migration-runner
|
MIGRATION_RUNNER_HOST=${CONTAINER_PREFIX}migration-runner
|
||||||
PROXY_HOST=${CONTAINER_PREFIX}proxy
|
PROXY_HOST=${CONTAINER_PREFIX}proxy
|
||||||
ROUTER_HOST=${CONTAINER_PREFIX}router
|
ROUTER_HOST=${CONTAINER_PREFIX}router
|
||||||
DOCEDITOR_HOST=${CONTAINER_PREFIX}doceditor
|
DOCEDITOR_HOST=${CONTAINER_PREFIX}doceditor
|
||||||
LOGIN_HOST=${CONTAINER_PREFIX}login
|
LOGIN_HOST=${CONTAINER_PREFIX}login
|
||||||
MANAGEMENT_HOST={CONTAINER_PREFIX}management
|
MANAGEMENT_HOST={CONTAINER_PREFIX}management
|
||||||
HELTHCHECKS_HOST=${CONTAINER_PREFIX}healthchecks
|
HELTHCHECKS_HOST=${CONTAINER_PREFIX}healthchecks
|
||||||
|
|
||||||
# router upstream environment #
|
# router upstream environment #
|
||||||
SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT}
|
SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_BACKUP=${BACKUP_HOST}:${SERVICE_PORT}
|
SERVICE_BACKUP=${BACKUP_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_BACKUP_BACKGRUOND_TASKS=${BACKUP_BACKGRUOND_TASKS_HOST}:${SERVICE_PORT}
|
SERVICE_BACKUP_BACKGRUOND_TASKS=${BACKUP_BACKGRUOND_TASKS_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_CLEAR_EVENTS=${CLEAR_EVENTS_HOST}:${SERVICE_PORT}
|
SERVICE_CLEAR_EVENTS=${CLEAR_EVENTS_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_FILES=${FILES_HOST}:${SERVICE_PORT}
|
SERVICE_FILES=${FILES_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_FILES_SERVICES=${FILES_SERVICES_HOST}:${SERVICE_PORT}
|
SERVICE_FILES_SERVICES=${FILES_SERVICES_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT}
|
SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_NOTIFY=${NOTIFY_HOST}:${SERVICE_PORT}
|
SERVICE_NOTIFY=${NOTIFY_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT}
|
SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_SOCKET=${SOCKET_HOST}:${SERVICE_PORT}
|
SERVICE_SOCKET=${SOCKET_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT}
|
SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_API=${API_HOST}:${SERVICE_PORT}
|
SERVICE_API=${API_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT}
|
SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT}
|
SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_TELEGRAMREPORTS=${TELEGRAMREPORTS_HOST}:${SERVICE_PORT}
|
SERVICE_TELEGRAMREPORTS=${TELEGRAMREPORTS_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_DOCEDITOR=${DOCEDITOR_HOST}:5013
|
SERVICE_DOCEDITOR=${DOCEDITOR_HOST}:5013
|
||||||
SERVICE_LOGIN=${LOGIN_HOST}:5011
|
SERVICE_LOGIN=${LOGIN_HOST}:5011
|
||||||
SERVICE_MANAGEMENT={MANAGEMENT_HOST}:${SERVICE_PORT}
|
SERVICE_MANAGEMENT={MANAGEMENT_HOST}:${SERVICE_PORT}
|
||||||
SERVICE_HELTHCHECKS=${HELTHCHECKS_HOST}:${SERVICE_PORT}
|
SERVICE_HELTHCHECKS=${HELTHCHECKS_HOST}:${SERVICE_PORT}
|
||||||
|
|
||||||
NETWORK_NAME=${PRODUCT}
|
NETWORK_NAME=${PRODUCT}
|
||||||
|
|
||||||
COMPOSE_IGNORE_ORPHANS=True
|
COMPOSE_IGNORE_ORPHANS=True
|
||||||
|
# identity #
|
||||||
|
IDENTITY_DOCKERFILE=/Dockerfile
|
||||||
|
|
||||||
|
JDBC_USER_NAME=root
|
||||||
|
JDBC_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
|
JDBC_URL=${MYSQL_CONTAINER_NAME}
|
||||||
|
JDBC_DATABASE=${MYSQL_DATABASE}
|
||||||
|
|
||||||
|
IDENTITY_PROFILE="dev"
|
||||||
|
|
||||||
|
IDENTITY_MIGRATION_CONTAINER_NAME=${CONTAINER_PREFIX}identity_migration
|
||||||
|
IDENTITY_MIGRATION_SERVER_PORT=8081
|
||||||
|
IDENTITY_AUTHORIZATION_CONTAINER_NAME=${CONTAINER_PREFIX}identity-authorization
|
||||||
|
IDENTITY_AUTHORIZATION_SERVER_PORT=8080
|
||||||
|
IDENTITY_API_CONTAINER_NAME=${CONTAINER_PREFIX}identity-api
|
||||||
|
IDENTITY_API_SERVER_PORT=9090
|
||||||
|
|
||||||
|
REDIS_ADDRESSES=redis://onlyoffice-redis:6379
|
||||||
|
@ -28,7 +28,7 @@ ARG PRODUCT_VERSION=0.0.0
|
|||||||
ARG BUILD_NUMBER=0
|
ARG BUILD_NUMBER=0
|
||||||
|
|
||||||
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
|
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
|
||||||
maintainer="Ascensio System SIA <support@onlyoffice.com>"
|
maintainer="Ascensio System SIA <support@onlyoffice.com>"
|
||||||
|
|
||||||
ENV LANG=en_US.UTF-8 \
|
ENV LANG=en_US.UTF-8 \
|
||||||
LANGUAGE=en_US:en \
|
LANGUAGE=en_US:en \
|
||||||
@ -40,10 +40,10 @@ COPY . .
|
|||||||
|
|
||||||
RUN apt-get -y update && \
|
RUN apt-get -y update && \
|
||||||
apt-get install -yq \
|
apt-get install -yq \
|
||||||
sudo \
|
sudo \
|
||||||
locales \
|
locales \
|
||||||
git \
|
git \
|
||||||
npm && \
|
npm && \
|
||||||
locale-gen en_US.UTF-8 && \
|
locale-gen en_US.UTF-8 && \
|
||||||
npm install --global yarn && \
|
npm install --global yarn && \
|
||||||
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||||
@ -81,7 +81,7 @@ RUN mkdir -p /app/onlyoffice/ && \
|
|||||||
rm -rf ${SRC_PATH}/products/ASC.Files/Service/* && \
|
rm -rf ${SRC_PATH}/products/ASC.Files/Service/* && \
|
||||||
rm -rf ${SRC_PATH}/products/ASC.Files/Server/* && \
|
rm -rf ${SRC_PATH}/products/ASC.Files/Server/* && \
|
||||||
rm -rf ${SRC_PATH}/products/ASC.People/Server/*
|
rm -rf ${SRC_PATH}/products/ASC.People/Server/*
|
||||||
|
|
||||||
FROM $DOTNET_RUN as dotnetrun
|
FROM $DOTNET_RUN as dotnetrun
|
||||||
ARG BUILD_PATH
|
ARG BUILD_PATH
|
||||||
ARG SRC_PATH
|
ARG SRC_PATH
|
||||||
@ -98,16 +98,16 @@ RUN mkdir -p /var/log/onlyoffice && \
|
|||||||
chown onlyoffice:onlyoffice /var/www -R && \
|
chown onlyoffice:onlyoffice /var/www -R && \
|
||||||
apt-get -y update && \
|
apt-get -y update && \
|
||||||
apt-get install -yq \
|
apt-get install -yq \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
nano \
|
nano \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
libgdiplus && \
|
libgdiplus && \
|
||||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||||
|
|
||||||
#USER onlyoffice
|
#USER onlyoffice
|
||||||
EXPOSE 5050
|
EXPOSE 5050
|
||||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||||
@ -127,10 +127,10 @@ RUN mkdir -p /var/log/onlyoffice && \
|
|||||||
chown onlyoffice:onlyoffice /var/www -R && \
|
chown onlyoffice:onlyoffice /var/www -R && \
|
||||||
apt-get -y update && \
|
apt-get -y update && \
|
||||||
apt-get install -yq \
|
apt-get install -yq \
|
||||||
nano \
|
nano \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
python3-pip && \
|
python3-pip && \
|
||||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
@ -176,6 +176,8 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
|
|||||||
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
|
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
|
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
||||||
if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
||||||
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
|
@ -16,20 +16,34 @@ ARG DEPLOY_ARGS="deploy"
|
|||||||
ARG DEBUG_INFO="true"
|
ARG DEBUG_INFO="true"
|
||||||
ARG PUBLISH_CNF="Release"
|
ARG PUBLISH_CNF="Release"
|
||||||
|
|
||||||
|
ARG GIT_BRANCH_BUILDTOOLS=""
|
||||||
|
ARG GIT_BRANCH_SERVER=""
|
||||||
|
ARG GIT_BRANCH_CLIENT=""
|
||||||
|
ARG GIT_BRANCH_CAMPAIGNS=""
|
||||||
|
ARG BUILDTOOLS_COMMIT=""
|
||||||
|
ARG SERVER_COMMIT=""
|
||||||
|
ARG CLIENT_COMMIT=""
|
||||||
|
ARG CAMPAIGNS_COMMIT=""
|
||||||
|
|
||||||
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
|
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
|
||||||
maintainer="Ascensio System SIA <support@onlyoffice.com>"
|
maintainer="Ascensio System SIA <support@onlyoffice.com>"
|
||||||
|
|
||||||
ENV LANG=en_US.UTF-8 \
|
ENV LANG=en_US.UTF-8 \
|
||||||
LANGUAGE=en_US:en \
|
LANGUAGE=en_US:en \
|
||||||
LC_ALL=en_US.UTF-8
|
LC_ALL=en_US.UTF-8
|
||||||
|
|
||||||
|
ARG GIT_BRANCH_BUILDTOOLS=${GIT_BRANCH_BUILDTOOLS:-$GIT_BRANCH}
|
||||||
|
ARG GIT_BRANCH_SERVER=${GIT_BRANCH_SERVER:-$GIT_BRANCH}
|
||||||
|
ARG GIT_BRANCH_CLIENT=${GIT_BRANCH_CLIENT:-$GIT_BRANCH}
|
||||||
|
ARG GIT_BRANCH_CAMPAIGNS=${GIT_BRANCH_CAMPAIGNS:-$GIT_BRANCH}
|
||||||
|
|
||||||
RUN apt-get -y update && \
|
RUN apt-get -y update && \
|
||||||
apt-get install -yq \
|
apt-get install -yq \
|
||||||
sudo \
|
sudo \
|
||||||
locales \
|
locales \
|
||||||
git \
|
git \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
npm && \
|
npm && \
|
||||||
locale-gen en_US.UTF-8 && \
|
locale-gen en_US.UTF-8 && \
|
||||||
npm install --global yarn && \
|
npm install --global yarn && \
|
||||||
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||||
@ -39,11 +53,15 @@ RUN apt-get -y update && \
|
|||||||
apt-get install -y nodejs && \
|
apt-get install -y nodejs && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ADD https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/git/refs/heads/${GIT_BRANCH} version.json
|
ADD https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/git/refs/heads/${GIT_BRANCH_BUILDTOOLS} version.json
|
||||||
RUN git clone -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-buildtools.git ${SRC_PATH}/buildtools && \
|
RUN git clone -b ${GIT_BRANCH_BUILDTOOLS} https://github.com/ONLYOFFICE/DocSpace-buildtools.git ${SRC_PATH}/buildtools && \
|
||||||
git clone --recurse-submodules -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-Server.git ${SRC_PATH}/server && \
|
if [ -n "${BUILDTOOLS_COMMIT}" ]; then git -C ${SRC_PATH}/buildtools checkout ${BUILDTOOLS_COMMIT}; fi && \
|
||||||
git clone -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-Client.git ${SRC_PATH}/client && \
|
git clone --recurse-submodules -b ${SERVER_BRANCH} https://github.com/ONLYOFFICE/DocSpace-Server.git ${SRC_PATH}/server && \
|
||||||
git clone -b "master" --depth 1 https://github.com/ONLYOFFICE/ASC.Web.Campaigns.git ${SRC_PATH}/campaigns
|
if [ -n "${SERVER_COMMIT}" ]; then git -C ${SRC_PATH}/server checkout ${SERVER_COMMIT}; fi && \
|
||||||
|
git clone -b ${GIT_BRANCH_CLIENT} https://github.com/ONLYOFFICE/DocSpace-Client.git ${SRC_PATH}/client && \
|
||||||
|
if [ -n "${CLIENT_COMMIT}" ]; then git -C ${SRC_PATH}/client checkout ${CLIENT_COMMIT}; fi && \
|
||||||
|
git clone -b master --depth 1 https://github.com/ONLYOFFICE/ASC.Web.Campaigns.git ${SRC_PATH}/campaigns && \
|
||||||
|
if [ -n "${CAMPAIGNS_COMMIT}" ]; then git -C ${SRC_PATH}/campaigns checkout ${CAMPAIGNS_COMMIT}; fi
|
||||||
|
|
||||||
RUN cd ${SRC_PATH} && \
|
RUN cd ${SRC_PATH} && \
|
||||||
mkdir -p /app/onlyoffice/config/ && \
|
mkdir -p /app/onlyoffice/config/ && \
|
||||||
@ -52,7 +70,7 @@ RUN cd ${SRC_PATH} && \
|
|||||||
cd ${SRC_PATH} && \
|
cd ${SRC_PATH} && \
|
||||||
cp buildtools/config/*.config /app/onlyoffice/config/ && \
|
cp buildtools/config/*.config /app/onlyoffice/config/ && \
|
||||||
mkdir -p /etc/nginx/conf.d && cp -f buildtools/config/nginx/onlyoffice*.conf /etc/nginx/conf.d/ && \
|
mkdir -p /etc/nginx/conf.d && cp -f buildtools/config/nginx/onlyoffice*.conf /etc/nginx/conf.d/ && \
|
||||||
mkdir -p /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/onlyoffice*.conf /etc/nginx/includes/ && \
|
mkdir -p /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/onlyoffice*.conf /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/server-*.conf /etc/nginx/includes/ && \
|
||||||
sed -i "s/\"number\".*,/\"number\": \"${PRODUCT_VERSION}.${BUILD_NUMBER}\",/g" /app/onlyoffice/config/appsettings.json && \
|
sed -i "s/\"number\".*,/\"number\": \"${PRODUCT_VERSION}.${BUILD_NUMBER}\",/g" /app/onlyoffice/config/appsettings.json && \
|
||||||
sed -e 's/#//' -i /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -e 's/#//' -i /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
cd ${SRC_PATH}/buildtools/install/common/ && \
|
cd ${SRC_PATH}/buildtools/install/common/ && \
|
||||||
@ -66,7 +84,7 @@ RUN cd ${SRC_PATH} && \
|
|||||||
rm -rf ${SRC_PATH}/server/products/ASC.Files/Server/* && \
|
rm -rf ${SRC_PATH}/server/products/ASC.Files/Server/* && \
|
||||||
rm -rf ${SRC_PATH}/server/products/ASC.Files/Service/* && \
|
rm -rf ${SRC_PATH}/server/products/ASC.Files/Service/* && \
|
||||||
rm -rf ${SRC_PATH}/server/products/ASC.People/Server/*
|
rm -rf ${SRC_PATH}/server/products/ASC.People/Server/*
|
||||||
|
|
||||||
COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
|
COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
|
||||||
|
|
||||||
FROM $DOTNET_RUN as dotnetrun
|
FROM $DOTNET_RUN as dotnetrun
|
||||||
@ -85,17 +103,17 @@ RUN mkdir -p /var/log/onlyoffice && \
|
|||||||
chown onlyoffice:onlyoffice /var/www -R && \
|
chown onlyoffice:onlyoffice /var/www -R && \
|
||||||
apt-get -y update && \
|
apt-get -y update && \
|
||||||
apt-get install -yq \
|
apt-get install -yq \
|
||||||
sudo \
|
sudo \
|
||||||
nano \
|
nano \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
libgdiplus && \
|
libgdiplus && \
|
||||||
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||||
|
|
||||||
#USER onlyoffice
|
#USER onlyoffice
|
||||||
EXPOSE 5050
|
EXPOSE 5050
|
||||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||||
@ -115,12 +133,12 @@ RUN mkdir -p /var/log/onlyoffice && \
|
|||||||
chown onlyoffice:onlyoffice /var/www -R && \
|
chown onlyoffice:onlyoffice /var/www -R && \
|
||||||
apt-get -y update && \
|
apt-get -y update && \
|
||||||
apt-get install -yq \
|
apt-get install -yq \
|
||||||
sudo \
|
sudo \
|
||||||
nano \
|
nano \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
python3-pip && \
|
python3-pip && \
|
||||||
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||||
@ -170,10 +188,12 @@ RUN sed -i 's/127.0.0.1:5010/$service_api_system/' /etc/nginx/conf.d/onlyoffice.
|
|||||||
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
|
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
|
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
||||||
if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
||||||
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5601/$dashboards_host:5601/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5601/$dashboards_host:5601/' /etc/nginx/includes/server-dashboards.conf && \
|
||||||
sed -i 's/$public_root/\/var\/www\/public\//' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/$public_root/\/var\/www\/public\//' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/http:\/\/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/http:\/\/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i '/client_body_temp_path/ i \ \ \ \ $MAP_HASH_BUCKET_SIZE' /etc/nginx/nginx.conf.template && \
|
sed -i '/client_body_temp_path/ i \ \ \ \ $MAP_HASH_BUCKET_SIZE' /etc/nginx/nginx.conf.template && \
|
||||||
@ -253,11 +273,11 @@ ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
|
|||||||
WORKDIR ${BUILD_PATH}/products/ASC.Files/service/
|
WORKDIR ${BUILD_PATH}/products/ASC.Files/service/
|
||||||
|
|
||||||
RUN echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list && \
|
RUN echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list && \
|
||||||
apt-key adv --keyserver keys.gnupg.net --recv-keys 3B4FE6ACC0B21F32 && \
|
apt-key adv --keyserver keys.gnupg.net --recv-keys 3B4FE6ACC0B21F32 && \
|
||||||
apt-key adv --keyserver keys.gnupg.net --recv-keys 871920D1991BC93C && \
|
apt-key adv --keyserver keys.gnupg.net --recv-keys 871920D1991BC93C && \
|
||||||
apt-get -y update && \
|
apt-get -y update && \
|
||||||
apt-get install -yq libssl1.1 && \
|
apt-get install -yq libssl1.1 && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.Service/service/ .
|
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.Service/service/ .
|
||||||
|
@ -36,11 +36,11 @@ RUN mkdir -p /var/log/onlyoffice && \
|
|||||||
chown onlyoffice:onlyoffice /var/www -R && \
|
chown onlyoffice:onlyoffice /var/www -R && \
|
||||||
apt-get -y update && \
|
apt-get -y update && \
|
||||||
apt-get install -yq \
|
apt-get install -yq \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
nano \
|
nano \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
libgdiplus && \
|
libgdiplus && \
|
||||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
@ -64,10 +64,10 @@ RUN mkdir -p /var/log/onlyoffice && \
|
|||||||
chown onlyoffice:onlyoffice /var/www -R && \
|
chown onlyoffice:onlyoffice /var/www -R && \
|
||||||
apt-get -y update && \
|
apt-get -y update && \
|
||||||
apt-get install -yq \
|
apt-get install -yq \
|
||||||
nano \
|
nano \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
python3-pip && \
|
python3-pip && \
|
||||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
@ -122,6 +122,8 @@ RUN chown onlyoffice:onlyoffice /etc/nginx/* -R && \
|
|||||||
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
|
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
|
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||||
|
@ -54,6 +54,18 @@ map $SERVICE_API $service_api {
|
|||||||
default $SERVICE_API;
|
default $SERVICE_API;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
map $SERVICE_IDENTITY_API $service_identity_api {
|
||||||
|
volatile;
|
||||||
|
"" 127.0.0.1:9090;
|
||||||
|
default $SERVICE_IDENTITY_API;
|
||||||
|
}
|
||||||
|
|
||||||
|
map $SERVICE_IDENTITY $service_identity {
|
||||||
|
volatile;
|
||||||
|
"" 127.0.0.1:8080;
|
||||||
|
default $SERVICE_IDENTITY;
|
||||||
|
}
|
||||||
|
|
||||||
map $SERVICE_STUDIO $service_studio {
|
map $SERVICE_STUDIO $service_studio {
|
||||||
volatile;
|
volatile;
|
||||||
"" 127.0.0.1:5003;
|
"" 127.0.0.1:5003;
|
||||||
|
@ -264,6 +264,8 @@ services:
|
|||||||
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
|
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
|
||||||
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
|
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
|
||||||
- SERVICE_SOCKET=${SERVICE_SOCKET}
|
- SERVICE_SOCKET=${SERVICE_SOCKET}
|
||||||
|
- SERVICE_IDENTITY_API=${SERVICE_IDENTITY_API}
|
||||||
|
- SERVICE_IDENTITY=${SERVICE_IDENTITY}
|
||||||
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
|
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
|
||||||
- SERVICE_API=${SERVICE_API}
|
- SERVICE_API=${SERVICE_API}
|
||||||
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
|
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
x-healthcheck:
|
version: "3.8"
|
||||||
&x-healthcheck
|
x-healthcheck: &x-healthcheck
|
||||||
test: curl --fail http://127.0.0.1 || exit 1
|
test: curl --fail http://127.0.0.1 || exit 1
|
||||||
interval: 60s
|
interval: 60s
|
||||||
retries: 5
|
retries: 5
|
||||||
@ -64,48 +64,48 @@ services:
|
|||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup-background:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup-background:${DOCKER_TAG}"
|
||||||
container_name: ${BACKUP_BACKGRUOND_TASKS_HOST}
|
container_name: ${BACKUP_BACKGRUOND_TASKS_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_BACKUP_BACKGRUOND_TASKS}/health/ || exit 1
|
test: curl --fail http://${SERVICE_BACKUP_BACKGRUOND_TASKS}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-backup:
|
onlyoffice-backup:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup:${DOCKER_TAG}"
|
||||||
container_name: ${BACKUP_HOST}
|
container_name: ${BACKUP_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_BACKUP}/health/ || exit 1
|
test: curl --fail http://${SERVICE_BACKUP}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-clear-events:
|
onlyoffice-clear-events:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}"
|
||||||
container_name: ${CLEAR_EVENTS_HOST}
|
container_name: ${CLEAR_EVENTS_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_CLEAR_EVENTS}/health/ || exit 1
|
test: curl --fail http://${SERVICE_CLEAR_EVENTS}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-files:
|
onlyoffice-files:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files:${DOCKER_TAG}"
|
||||||
container_name: ${FILES_HOST}
|
container_name: ${FILES_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_FILES}/health/ || exit 1
|
test: curl --fail http://${SERVICE_FILES}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-files-services:
|
onlyoffice-files-services:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files-services:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files-services:${DOCKER_TAG}"
|
||||||
container_name: ${FILES_SERVICES_HOST}
|
container_name: ${FILES_SERVICES_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_FILES_SERVICES}/health/ || exit 1
|
test: curl --fail http://${SERVICE_FILES_SERVICES}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-people-server:
|
onlyoffice-people-server:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-people-server:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-people-server:${DOCKER_TAG}"
|
||||||
container_name: ${PEOPLE_SERVER_HOST}
|
container_name: ${PEOPLE_SERVER_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_PEOPLE_SERVER}/health/ || exit 1
|
test: curl --fail http://${SERVICE_PEOPLE_SERVER}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-socket:
|
onlyoffice-socket:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
@ -119,32 +119,32 @@ services:
|
|||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}"
|
||||||
container_name: ${STUDIO_NOTIFY_HOST}
|
container_name: ${STUDIO_NOTIFY_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_STUDIO_NOTIFY}/health/ || exit 1
|
test: curl --fail http://${SERVICE_STUDIO_NOTIFY}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-api:
|
onlyoffice-api:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api:${DOCKER_TAG}"
|
||||||
container_name: ${API_HOST}
|
container_name: ${API_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_API}/health/ || exit 1
|
test: curl --fail http://${SERVICE_API}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-api-system:
|
onlyoffice-api-system:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api-system:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api-system:${DOCKER_TAG}"
|
||||||
container_name: ${API_SYSTEM_HOST}
|
container_name: ${API_SYSTEM_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_API_SYSTEM}/health/ || exit 1
|
test: curl --fail http://${SERVICE_API_SYSTEM}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-studio:
|
onlyoffice-studio:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio:${DOCKER_TAG}"
|
||||||
container_name: ${STUDIO_HOST}
|
container_name: ${STUDIO_HOST}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_STUDIO}/health/ || exit 1
|
test: curl --fail http://${SERVICE_STUDIO}/health/ || exit 1
|
||||||
|
|
||||||
onlyoffice-ssoauth:
|
onlyoffice-ssoauth:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
@ -161,8 +161,8 @@ services:
|
|||||||
expose:
|
expose:
|
||||||
- "5013"
|
- "5013"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_DOCEDITOR}/doceditor/health || exit 1
|
test: curl --fail http://${SERVICE_DOCEDITOR}/doceditor/health || exit 1
|
||||||
|
|
||||||
onlyoffice-login:
|
onlyoffice-login:
|
||||||
<<: *x-service-base
|
<<: *x-service-base
|
||||||
@ -171,16 +171,16 @@ services:
|
|||||||
expose:
|
expose:
|
||||||
- "5011"
|
- "5011"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: curl --fail http://${SERVICE_LOGIN}/login/health || exit 1
|
test: curl --fail http://${SERVICE_LOGIN}/login/health || exit 1
|
||||||
|
|
||||||
onlyoffice-router:
|
onlyoffice-router:
|
||||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-router:${DOCKER_TAG}"
|
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-router:${DOCKER_TAG}"
|
||||||
container_name: ${ROUTER_HOST}
|
container_name: ${ROUTER_HOST}
|
||||||
restart: always
|
restart: always
|
||||||
healthcheck:
|
healthcheck:
|
||||||
<<: *x-healthcheck
|
<<: *x-healthcheck
|
||||||
test: nginx -t || exit 1
|
test: nginx -t || exit 1
|
||||||
expose:
|
expose:
|
||||||
- "8081"
|
- "8081"
|
||||||
- "8099"
|
- "8099"
|
||||||
@ -208,6 +208,8 @@ services:
|
|||||||
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
|
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
|
||||||
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
|
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
|
||||||
- SERVICE_SOCKET=${SERVICE_SOCKET}
|
- SERVICE_SOCKET=${SERVICE_SOCKET}
|
||||||
|
- SERVICE_IDENTITY_API=${SERVICE_IDENTITY_API}
|
||||||
|
- SERVICE_IDENTITY=${SERVICE_IDENTITY}
|
||||||
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
|
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
|
||||||
- SERVICE_API=${SERVICE_API}
|
- SERVICE_API=${SERVICE_API}
|
||||||
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
|
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
|
||||||
|
69
install/docker/identity.yml
Normal file
69
install/docker/identity.yml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
onlyoffice-identity-authorization:
|
||||||
|
build:
|
||||||
|
context: ../../../server/common/ASC.Identity
|
||||||
|
dockerfile: ${IDENTITY_DOCKERFILE}
|
||||||
|
args:
|
||||||
|
- MODULE=authorization/authorization-container
|
||||||
|
container_name: ${IDENTITY_AUTHORIZATION_CONTAINER_NAME}
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
environment:
|
||||||
|
- SPRING_PROFILES_ACTIVE=${IDENTITY_PROFILE}
|
||||||
|
- SPRING_APPLICATION_NAME=ASC.Identity.Authorization
|
||||||
|
- SERVER_PORT=${IDENTITY_AUTHORIZATION_SERVER_PORT}
|
||||||
|
- JDBC_PASSWORD=${JDBC_PASSWORD}
|
||||||
|
- JDBC_URL=${JDBC_URL}
|
||||||
|
- JDBC_USER_NAME=${JDBC_USER_NAME}
|
||||||
|
- JDBC_DATABASE=${JDBC_DATABASE}
|
||||||
|
- RABBIT_HOST=onlyoffice-rabbitmq
|
||||||
|
- REDIS_HOST=onlyoffice-redis
|
||||||
|
depends_on:
|
||||||
|
- onlyoffice-identity-migration
|
||||||
|
|
||||||
|
onlyoffice-identity-api:
|
||||||
|
build:
|
||||||
|
context: ../../../server/common/ASC.Identity
|
||||||
|
dockerfile: ${IDENTITY_DOCKERFILE}
|
||||||
|
args:
|
||||||
|
- MODULE=registration/registration-container
|
||||||
|
container_name: ${IDENTITY_API_CONTAINER_NAME}
|
||||||
|
ports:
|
||||||
|
- 9090:9090
|
||||||
|
environment:
|
||||||
|
- SPRING_PROFILES_ACTIVE=${PROFILE}
|
||||||
|
- SPRING_APPLICATION_NAME=ASC.Identity.Registration
|
||||||
|
- SERVER_PORT=${IDENTITY_API_SERVER_PORT}
|
||||||
|
- JDBC_PASSWORD=${JDBC_PASSWORD}
|
||||||
|
- JDBC_URL=${JDBC_URL}
|
||||||
|
- JDBC_USER_NAME=${JDBC_USER_NAME}
|
||||||
|
- JDBC_DATABASE=${JDBC_DATABASE}
|
||||||
|
- RABBIT_HOST=onlyoffice-rabbitmq
|
||||||
|
- REDIS_HOST=onlyoffice-redis
|
||||||
|
depends_on:
|
||||||
|
- onlyoffice-identity-migration
|
||||||
|
|
||||||
|
onlyoffice-identity-migration:
|
||||||
|
build:
|
||||||
|
context: ../../../server/common/ASC.Identity
|
||||||
|
dockerfile: ${IDENTITY_DOCKERFILE}
|
||||||
|
args:
|
||||||
|
- MODULE=infrastructure/infrastructure-migration-runner
|
||||||
|
container_name: ${IDENTITY_MIGRATION_CONTAINER_NAME}
|
||||||
|
restart: "no"
|
||||||
|
ports:
|
||||||
|
- 8081:8081
|
||||||
|
environment:
|
||||||
|
- JDBC_PASSWORD=${JDBC_PASSWORD}
|
||||||
|
- JDBC_URL=${JDBC_URL}
|
||||||
|
- JDBC_USER_NAME=${JDBC_USER_NAME}
|
||||||
|
- JDBC_DATABASE=${JDBC_DATABASE}
|
||||||
|
- RABBIT_HOST=onlyoffice-rabbitmq
|
||||||
|
- REDIS_HOST=onlyoffice-redis
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: ${NETWORK_NAME}
|
||||||
|
external: true
|
12
run/IdentityApi.xml
Normal file
12
run/IdentityApi.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<service>
|
||||||
|
<id>OnlyofficeIdentityApi</id>
|
||||||
|
<name>ONLYOFFICE IdentityApi</name>
|
||||||
|
<startmode>manual</startmode>
|
||||||
|
<executable>java</executable>
|
||||||
|
<env name="LOG_FILE_PATH" value="../../Logs/identity-api.log"/>
|
||||||
|
<env name="SPRING_PROFILES_ACTIVE" value=""/>
|
||||||
|
<arguments>-jar ../../server/common/ASC.Identity/registration/registration-container/target/registration-container-1.0.0.jar</arguments>
|
||||||
|
<log mode="none"/>
|
||||||
|
<delayedAutoStart>true</delayedAutoStart>
|
||||||
|
<onfailure action="restart" delay="5 sec" />
|
||||||
|
</service>
|
12
run/IdentityMigration.xml
Normal file
12
run/IdentityMigration.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<service>
|
||||||
|
<id>OnlyofficeIdentityMigration</id>
|
||||||
|
<name>ONLYOFFICE IdentityMigration</name>
|
||||||
|
<startmode>manual</startmode>
|
||||||
|
<executable>java</executable>
|
||||||
|
<env name="LOG_FILE_PATH" value="../../Logs/identity-migration.log"/>
|
||||||
|
<env name="SPRING_PROFILES_ACTIVE" value="dev"/>
|
||||||
|
<arguments>-jar ../../server/common/ASC.Identity/infrastructure/infrastructure-migration-runner/target/infrastructure-migration-runner-1.0.0.jar</arguments>
|
||||||
|
<log mode="none"/>
|
||||||
|
<delayedAutoStart>true</delayedAutoStart>
|
||||||
|
<onfailure action="restart" delay="5 sec" />
|
||||||
|
</service>
|
13
run/IdentityService.xml
Normal file
13
run/IdentityService.xml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<service>
|
||||||
|
<id>OnlyofficeIdentityService</id>
|
||||||
|
<name>ONLYOFFICE IdentityService</name>
|
||||||
|
<startmode>manual</startmode>
|
||||||
|
<executable>java</executable>
|
||||||
|
<env name="LOG_FILE_PATH" value="../../Logs/identity-authorization.log"/>
|
||||||
|
<env name="SERVER_PORT" value="8080"/>
|
||||||
|
<env name="SPRING_PROFILES_ACTIVE" value=""/>
|
||||||
|
<arguments>-jar ../../server/common/ASC.Identity/authorization/authorization-container/target/authorization-container-1.0.0.jar</arguments>
|
||||||
|
<log mode="none"/>
|
||||||
|
<delayedAutoStart>true</delayedAutoStart>
|
||||||
|
<onfailure action="restart" delay="5 sec" />
|
||||||
|
</service>
|
28
scripts/identity.bat
Normal file
28
scripts/identity.bat
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
PUSHD %~dp0..
|
||||||
|
|
||||||
|
cd %~dp0../../server/common/ASC.Identity/
|
||||||
|
|
||||||
|
echo Start build ASC.Identity project...
|
||||||
|
echo.
|
||||||
|
|
||||||
|
echo ASC.Identity: resolves all project dependencies...
|
||||||
|
echo.
|
||||||
|
|
||||||
|
call mvn dependency:go-offline -q
|
||||||
|
|
||||||
|
if %errorlevel% == 0 (
|
||||||
|
|
||||||
|
echo ASC.Identity: take the compiled code and package it in its distributable format, such as a JAR...
|
||||||
|
call mvn package -DskipTests -q
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
if %errorlevel% == 0 (
|
||||||
|
|
||||||
|
echo ASC.Identity: build completed
|
||||||
|
echo.
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
POPD
|
Loading…
Reference in New Issue
Block a user