mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Configure from env vars at run time
In both local developent, and production. Also, vendor the `envsubst` binary from https://github.com/a8m/envsubst, as it supports default values, which the gnu envsubst (from gettext-base) does not.
This commit is contained in:
parent
f1c9d6108e
commit
b47f21a44e
7 changed files with 49 additions and 32 deletions
|
@ -6,3 +6,4 @@
|
||||||
!/pom.xml
|
!/pom.xml
|
||||||
!/Makefile
|
!/Makefile
|
||||||
!/LICENSE
|
!/LICENSE
|
||||||
|
!/vendor
|
||||||
|
|
3
services/git-bridge/.gitignore
vendored
3
services/git-bridge/.gitignore
vendored
|
@ -48,3 +48,6 @@ com_crashlytics_export_strings.xml
|
||||||
crashlytics.properties
|
crashlytics.properties
|
||||||
crashlytics-build.properties
|
crashlytics-build.properties
|
||||||
fabric.properties
|
fabric.properties
|
||||||
|
|
||||||
|
# Local configuration files
|
||||||
|
conf/runtime.json
|
||||||
|
|
|
@ -2,16 +2,20 @@
|
||||||
|
|
||||||
FROM maven:3-jdk-8 as base
|
FROM maven:3-jdk-8 as base
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y make \
|
RUN apt-get update && apt-get install -y make git \
|
||||||
&& rm -rf /var/lib/apt/lists
|
&& rm -rf /var/lib/apt/lists
|
||||||
|
|
||||||
|
COPY vendor/envsubst /opt/envsubst
|
||||||
|
RUN chmod +x /opt/envsubst
|
||||||
|
|
||||||
RUN useradd --create-home node
|
RUN useradd --create-home node
|
||||||
|
|
||||||
FROM base as builder
|
FROM base as builder
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY . /app
|
|
||||||
RUN make package \
|
RUN make package \
|
||||||
# The name of the created jar contains the current version tag.
|
# The name of the created jar contains the current version tag.
|
||||||
# Rename it to a static path that can be used for copying.
|
# Rename it to a static path that can be used for copying.
|
||||||
|
@ -21,15 +25,16 @@ RUN make package \
|
||||||
|
|
||||||
FROM openjdk:8-jre
|
FROM openjdk:8-jre
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y git gettext-base\
|
RUN apt-get update && apt-get install -y git \
|
||||||
&& rm -rf /var/lib/apt/lists
|
&& rm -rf /var/lib/apt/lists
|
||||||
|
|
||||||
RUN useradd --create-home node
|
RUN useradd --create-home node
|
||||||
|
|
||||||
CMD ["/start.sh"]
|
|
||||||
|
|
||||||
COPY --from=builder /git-bridge.jar /
|
COPY --from=builder /git-bridge.jar /
|
||||||
|
|
||||||
|
COPY vendor/envsubst /opt/envsubst
|
||||||
|
RUN chmod +x /opt/envsubst
|
||||||
|
|
||||||
COPY conf/envsubst_template.json envsubst_template.json
|
COPY conf/envsubst_template.json envsubst_template.json
|
||||||
COPY start.sh start.sh
|
COPY start.sh start.sh
|
||||||
|
|
||||||
|
@ -37,3 +42,5 @@ RUN mkdir conf
|
||||||
RUN chown node:node conf
|
RUN chown node:node conf
|
||||||
|
|
||||||
USER node
|
USER node
|
||||||
|
|
||||||
|
ENTRYPOINT ["/start.sh"]
|
||||||
|
|
|
@ -2,8 +2,14 @@
|
||||||
|
|
||||||
MVN_OPTS := "--no-transfer-progress"
|
MVN_OPTS := "--no-transfer-progress"
|
||||||
|
|
||||||
run: package
|
runtime-conf:
|
||||||
java -jar target/writelatex-git-bridge-1.0-SNAPSHOT-jar-with-dependencies.jar conf/local.json
|
/opt/envsubst < conf/envsubst_template.json > conf/runtime.json
|
||||||
|
|
||||||
|
|
||||||
|
run: package runtime-conf
|
||||||
|
java -jar \
|
||||||
|
target/writelatex-git-bridge-1.0-SNAPSHOT-jar-with-dependencies.jar \
|
||||||
|
conf/runtime.json
|
||||||
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
@ -22,4 +28,4 @@ package: clean
|
||||||
mvn $(MVN_OPTS) package -DskipTests
|
mvn $(MVN_OPTS) package -DskipTests
|
||||||
|
|
||||||
|
|
||||||
.PHONY: run package build clean test
|
.PHONY: run package build clean test runtime-conf
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
{
|
{
|
||||||
"port": 8080,
|
"port": ${GIT_BRIDGE_PORT:-8000},
|
||||||
"rootGitDirectory": "/tmp/wlgb",
|
"rootGitDirectory": "${GIT_BRIDGE_ROOT_DIR:-/tmp/wlgb}",
|
||||||
"apiBaseUrl": "https://localhost/api/v0",
|
"apiBaseUrl": "${GIT_BRIDGE_API_BASE_URL:-https://localhost/api/v0}",
|
||||||
"username": "$GITBRIDGE_USERNAME",
|
"username": "${GIT_BRIDGE_USERNAME}",
|
||||||
"password": "$GITBRIDGE_PASSWORD",
|
"password": "${GIT_BRIDGE_PASSWORD}",
|
||||||
"postbackBaseUrl": "https://localhost",
|
"postbackBaseUrl": "${GIT_BRIDGE_POSTBACK_BASE_URL:-https://localhost}",
|
||||||
"serviceName": "Overleaf",
|
"serviceName": "${GIT_BRIDGE_SERVICE_NAME:-Overleaf}",
|
||||||
"oauth2": {
|
"oauth2": {
|
||||||
"oauth2ClientID": "$GITBRIDGE_OAUTH2_CLIENT_ID",
|
"oauth2ClientID": "${GITBRIDGE_OAUTH2_CLIENT_ID}",
|
||||||
"oauth2ClientSecret": "$GITBRIDGE_OAUTH2_CLIENT_SECRET",
|
"oauth2ClientSecret": "${GITBRIDGE_OAUTH2_CLIENT_SECRET}",
|
||||||
"oauth2Server": "https://localhost"
|
"oauth2Server": "${GIT_BRIDGE_OAUTH2_SERVER:-https://localhost}"
|
||||||
},
|
},
|
||||||
"repoStore": {
|
"repoStore": {
|
||||||
"maxFileNum": 2000,
|
"maxFileNum": ${GIT_BRIDGE_REPOSTORE_MAX_FILE_NUM:-2000},
|
||||||
"maxFileSize": 52428800
|
"maxFileSize": ${GIT_BRIDGE_REPOSTORE_MAX_FILE_SIZE:-52428800}
|
||||||
},
|
},
|
||||||
"swapStore": {
|
"swapStore": {
|
||||||
"type": "s3",
|
"type": "${GIT_BRIDGE_SWAPSTORE_TYPE:-noop}",
|
||||||
"awsAccessKey": "asdf",
|
"awsAccessKey": "${GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY}",
|
||||||
"awsSecret": "asdf",
|
"awsSecret": "${GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY}",
|
||||||
"s3BucketName": "com.overleaf.testbucket",
|
"s3BucketName": "${GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME}",
|
||||||
"awsRegion": "us-east-1"
|
"awsRegion": "${GIT_BRIDGE_SWAPSTORE_AWS_REGION:-us-east-1}"
|
||||||
},
|
},
|
||||||
"swapJob": {
|
"swapJob": {
|
||||||
"minProjects": 50,
|
"minProjects": ${GIT_BRIDGE_SWAPJOB_MIN_PROJECTS:-50},
|
||||||
"lowGiB": 128,
|
"lowGiB": ${GIT_BRIDGE_SWAPJOB_LOW_GIB:-128},
|
||||||
"highGiB": 256,
|
"highGiB": ${GIT_BRIDGE_SWAPJOB_HIGH_GIB:-256},
|
||||||
"intervalMillis": 3600000,
|
"intervalMillis": ${GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS:-3600000},
|
||||||
"compressionMethod": "gzip"
|
"compressionMethod": "${GIT_BRIDGE_SWAPJOB_COMPRESSION_METHOD:-gzip}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
envsubst < /envsubst_template.json > /conf/runtime.json
|
/opt/envsubst < /envsubst_template.json > /conf/runtime.json
|
||||||
java -jar /git-bridge.jar /conf/runtime.json
|
exec java -jar /git-bridge.jar /conf/runtime.json
|
||||||
|
|
BIN
services/git-bridge/vendor/envsubst
vendored
Executable file
BIN
services/git-bridge/vendor/envsubst
vendored
Executable file
Binary file not shown.
Loading…
Reference in a new issue