diff --git a/web/documentserver-example/ruby/Dockerfile b/web/documentserver-example/ruby/Dockerfile new file mode 100644 index 00000000..00dd3729 --- /dev/null +++ b/web/documentserver-example/ruby/Dockerfile @@ -0,0 +1,23 @@ +FROM ruby:3.2.2-alpine3.18 AS example-base +WORKDIR /srv +COPY . . +RUN \ + apk update && \ + apk add --no-cache \ + build-base \ + gcompat \ + git \ + make \ + nodejs && \ + gem install bundler -v 2.3.7 + +FROM example-base AS example-dev +RUN make dev +CMD ["make", "server-dev"] + +FROM example-base AS example-prod +RUN make prod +CMD ["make", "server-prod"] + +FROM nginx:1.23.4-alpine3.17 AS proxy +COPY proxy/nginx.conf /etc/nginx/nginx.conf diff --git a/web/documentserver-example/ruby/compose-base.yml b/web/documentserver-example/ruby/compose-base.yml new file mode 100644 index 00000000..70a2f356 --- /dev/null +++ b/web/documentserver-example/ruby/compose-base.yml @@ -0,0 +1,33 @@ +version: "3.8" + +services: + document-server: + container_name: document-server + image: onlyoffice/documentserver:7.3.3.50 + expose: + - "80" + environment: + - JWT_SECRET=your-256-bit-secret + + example: + container_name: example + build: + context: . + target: example + expose: + - "80" + environment: + - BINDING=0.0.0.0 + - DOCUMENT_SERVER_URL=http://localhost:8080 + - EXAMPLE_URL=http://proxy + - JWT_SECRET=your-256-bit-secret + - PORT=80 + + proxy: + container_name: proxy + build: + context: . + target: proxy + ports: + - "80:80" + - "8080:8080" diff --git a/web/documentserver-example/ruby/compose-dev.yml b/web/documentserver-example/ruby/compose-dev.yml new file mode 100644 index 00000000..0f4d1b9c --- /dev/null +++ b/web/documentserver-example/ruby/compose-dev.yml @@ -0,0 +1,6 @@ +version: "3.8" + +services: + example: + build: + target: example-dev diff --git a/web/documentserver-example/ruby/compose-prod.yml b/web/documentserver-example/ruby/compose-prod.yml new file mode 100644 index 00000000..325c4556 --- /dev/null +++ b/web/documentserver-example/ruby/compose-prod.yml @@ -0,0 +1,6 @@ +version: "3.8" + +services: + example: + build: + target: example-prod diff --git a/web/documentserver-example/ruby/proxy/nginx.conf b/web/documentserver-example/ruby/proxy/nginx.conf new file mode 100644 index 00000000..c09dd545 --- /dev/null +++ b/web/documentserver-example/ruby/proxy/nginx.conf @@ -0,0 +1,38 @@ +worker_processes auto; + +events { + worker_connections 512; +} + +http { + include /etc/nginx/mime.types; + + server { + listen 80; + server_name localhost; + + location / { + proxy_http_version 1.1; + proxy_pass http://example; + } + } + + server { + listen 8080; + server_name localhost; + + location / { + client_max_body_size 100m; + proxy_http_version 1.1; + proxy_pass http://document-server; + proxy_redirect off; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $http_host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $http_x_forwarded_host; + proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; + proxy_set_header X-Real-IP $remote_addr; + } + } +}