2018-05-18 09:27:46 -04:00
|
|
|
# This file was auto-generated, do not edit it directly.
|
|
|
|
# Instead run bin/update_build_scripts from
|
2022-09-01 11:32:43 -04:00
|
|
|
# https://github.com/overleaf/internal/
|
2018-05-18 09:27:46 -04:00
|
|
|
|
2020-02-10 11:10:42 -05:00
|
|
|
version: "2.3"
|
2018-05-18 09:27:46 -04:00
|
|
|
|
|
|
|
services:
|
|
|
|
test_unit:
|
2020-02-10 11:10:42 -05:00
|
|
|
build:
|
2022-01-06 10:02:36 -05:00
|
|
|
context: ../..
|
|
|
|
dockerfile: services/filestore/Dockerfile
|
2020-02-10 11:10:42 -05:00
|
|
|
target: base
|
2018-05-18 09:27:46 -04:00
|
|
|
volumes:
|
2022-01-06 10:02:36 -05:00
|
|
|
- .:/overleaf/services/filestore
|
2022-02-07 06:46:51 -05:00
|
|
|
- ../../node_modules:/overleaf/node_modules
|
|
|
|
- ../../libraries:/overleaf/libraries
|
2022-01-06 10:02:36 -05:00
|
|
|
working_dir: /overleaf/services/filestore
|
2018-05-18 09:27:46 -04:00
|
|
|
environment:
|
|
|
|
MOCHA_GREP: ${MOCHA_GREP}
|
2019-06-19 08:25:18 -04:00
|
|
|
NODE_ENV: test
|
2020-08-10 12:01:12 -04:00
|
|
|
NODE_OPTIONS: "--unhandled-rejections=strict"
|
|
|
|
command: npm run --silent test:unit
|
2018-05-18 09:27:46 -04:00
|
|
|
user: node
|
|
|
|
|
|
|
|
test_acceptance:
|
2020-02-10 11:10:42 -05:00
|
|
|
build:
|
2022-01-06 10:02:36 -05:00
|
|
|
context: ../..
|
|
|
|
dockerfile: services/filestore/Dockerfile
|
2020-02-10 11:10:42 -05:00
|
|
|
target: base
|
2018-05-18 09:27:46 -04:00
|
|
|
volumes:
|
2022-01-06 10:02:36 -05:00
|
|
|
- .:/overleaf/services/filestore
|
2022-02-07 06:46:51 -05:00
|
|
|
- ../../node_modules:/overleaf/node_modules
|
|
|
|
- ../../libraries:/overleaf/libraries
|
2024-10-31 08:08:26 -04:00
|
|
|
- ./test/acceptance/certs:/certs
|
2022-01-06 10:02:36 -05:00
|
|
|
working_dir: /overleaf/services/filestore
|
2018-05-18 09:27:46 -04:00
|
|
|
environment:
|
2018-06-13 11:21:32 -04:00
|
|
|
ELASTIC_SEARCH_DSN: es:9200
|
2018-05-18 09:27:46 -04:00
|
|
|
MONGO_HOST: mongo
|
|
|
|
POSTGRES_HOST: postgres
|
2024-10-31 08:08:26 -04:00
|
|
|
AWS_S3_ENDPOINT: https://minio:9000
|
2020-08-10 12:01:12 -04:00
|
|
|
AWS_S3_PATH_STYLE: 'true'
|
2024-10-31 08:08:26 -04:00
|
|
|
AWS_ACCESS_KEY_ID: OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID
|
|
|
|
AWS_SECRET_ACCESS_KEY: OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY
|
|
|
|
MINIO_ROOT_USER: MINIO_ROOT_USER
|
|
|
|
MINIO_ROOT_PASSWORD: MINIO_ROOT_PASSWORD
|
2023-06-01 04:43:56 -04:00
|
|
|
GCS_API_ENDPOINT: http://gcs:9090
|
2020-08-10 12:01:12 -04:00
|
|
|
GCS_PROJECT_ID: fake
|
|
|
|
STORAGE_EMULATOR_HOST: http://gcs:9090/storage/v1
|
2018-05-18 09:27:46 -04:00
|
|
|
MOCHA_GREP: ${MOCHA_GREP}
|
2019-06-19 08:25:18 -04:00
|
|
|
LOG_LEVEL: ERROR
|
|
|
|
NODE_ENV: test
|
2020-08-10 12:01:12 -04:00
|
|
|
NODE_OPTIONS: "--unhandled-rejections=strict"
|
2019-12-16 12:09:38 -05:00
|
|
|
ENABLE_CONVERSIONS: "true"
|
2019-12-05 10:25:35 -05:00
|
|
|
USE_PROM_METRICS: "true"
|
2024-10-31 08:08:26 -04:00
|
|
|
AWS_S3_USER_FILES_BUCKET_NAME: fake-user-files
|
2024-11-08 03:31:26 -05:00
|
|
|
AWS_S3_USER_FILES_DEK_BUCKET_NAME: fake-user-files-dek
|
2024-10-31 08:08:26 -04:00
|
|
|
AWS_S3_TEMPLATE_FILES_BUCKET_NAME: fake-template-files
|
|
|
|
GCS_USER_FILES_BUCKET_NAME: fake-gcs-user-files
|
|
|
|
GCS_TEMPLATE_FILES_BUCKET_NAME: fake-gcs-template-files
|
2018-05-18 09:27:46 -04:00
|
|
|
user: node
|
|
|
|
depends_on:
|
2024-10-31 08:08:26 -04:00
|
|
|
certs:
|
|
|
|
condition: service_completed_successfully
|
|
|
|
minio:
|
|
|
|
condition: service_started
|
|
|
|
minio_setup:
|
|
|
|
condition: service_completed_successfully
|
2020-02-12 05:38:32 -05:00
|
|
|
gcs:
|
|
|
|
condition: service_healthy
|
2020-08-10 12:01:12 -04:00
|
|
|
command: npm run --silent test:acceptance
|
2018-06-13 11:21:32 -04:00
|
|
|
|
2024-10-31 08:08:26 -04:00
|
|
|
certs:
|
2024-11-05 11:54:55 -05:00
|
|
|
image: node:18.20.4
|
2024-10-31 08:08:26 -04:00
|
|
|
volumes:
|
|
|
|
- ./test/acceptance/certs:/certs
|
|
|
|
working_dir: /certs
|
|
|
|
entrypoint: sh
|
|
|
|
command:
|
|
|
|
- '-cex'
|
|
|
|
- |
|
|
|
|
if [ ! -f ./certgen ]; then
|
|
|
|
wget -O ./certgen "https://github.com/minio/certgen/releases/download/v1.3.0/certgen-linux-$(dpkg --print-architecture)"
|
|
|
|
chmod +x ./certgen
|
|
|
|
fi
|
|
|
|
if [ ! -f private.key ] || [ ! -f public.crt ]; then
|
|
|
|
./certgen -host minio
|
|
|
|
fi
|
|
|
|
|
|
|
|
minio:
|
|
|
|
image: minio/minio:RELEASE.2024-10-13T13-34-11Z
|
|
|
|
command: server /data
|
|
|
|
volumes:
|
|
|
|
- ./test/acceptance/certs:/root/.minio/certs
|
2019-12-05 08:55:08 -05:00
|
|
|
environment:
|
2024-10-31 08:08:26 -04:00
|
|
|
MINIO_ROOT_USER: MINIO_ROOT_USER
|
|
|
|
MINIO_ROOT_PASSWORD: MINIO_ROOT_PASSWORD
|
|
|
|
depends_on:
|
|
|
|
certs:
|
|
|
|
condition: service_completed_successfully
|
|
|
|
|
|
|
|
minio_setup:
|
|
|
|
depends_on:
|
|
|
|
certs:
|
|
|
|
condition: service_completed_successfully
|
|
|
|
minio:
|
|
|
|
condition: service_started
|
|
|
|
image: minio/mc:RELEASE.2024-10-08T09-37-26Z
|
|
|
|
volumes:
|
|
|
|
- ./test/acceptance/certs:/root/.mc/certs/CAs
|
|
|
|
entrypoint: sh
|
|
|
|
command:
|
|
|
|
- '-cex'
|
|
|
|
- |
|
|
|
|
sleep 1
|
|
|
|
mc alias set s3 https://minio:9000 MINIO_ROOT_USER MINIO_ROOT_PASSWORD \
|
|
|
|
|| sleep 3 && \
|
|
|
|
mc alias set s3 https://minio:9000 MINIO_ROOT_USER MINIO_ROOT_PASSWORD \
|
|
|
|
|| sleep 3 && \
|
|
|
|
mc alias set s3 https://minio:9000 MINIO_ROOT_USER MINIO_ROOT_PASSWORD \
|
|
|
|
|| sleep 3 && \
|
|
|
|
mc alias set s3 https://minio:9000 MINIO_ROOT_USER MINIO_ROOT_PASSWORD
|
|
|
|
|
|
|
|
mc mb --ignore-existing s3/fake-user-files
|
2024-11-08 03:31:26 -05:00
|
|
|
mc mb --ignore-existing s3/fake-user-files-dek
|
2024-10-31 08:08:26 -04:00
|
|
|
mc mb --ignore-existing s3/fake-template-files
|
|
|
|
mc admin user add s3 \
|
|
|
|
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID \
|
|
|
|
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY
|
|
|
|
|
|
|
|
echo '
|
|
|
|
{
|
|
|
|
"Version": "2012-10-17",
|
|
|
|
"Statement": [
|
|
|
|
{
|
|
|
|
"Effect": "Allow",
|
|
|
|
"Action": [
|
|
|
|
"s3:ListBucket"
|
|
|
|
],
|
|
|
|
"Resource": "arn:aws:s3:::fake-user-files"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"Effect": "Allow",
|
|
|
|
"Action": [
|
|
|
|
"s3:PutObject",
|
|
|
|
"s3:GetObject",
|
|
|
|
"s3:DeleteObject"
|
|
|
|
],
|
|
|
|
"Resource": "arn:aws:s3:::fake-user-files/*"
|
|
|
|
},
|
2024-11-08 03:31:26 -05:00
|
|
|
{
|
|
|
|
"Effect": "Allow",
|
|
|
|
"Action": [
|
|
|
|
"s3:ListBucket"
|
|
|
|
],
|
|
|
|
"Resource": "arn:aws:s3:::fake-user-files-dek"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"Effect": "Allow",
|
|
|
|
"Action": [
|
|
|
|
"s3:PutObject",
|
|
|
|
"s3:GetObject",
|
|
|
|
"s3:DeleteObject"
|
|
|
|
],
|
|
|
|
"Resource": "arn:aws:s3:::fake-user-files-dek/*"
|
|
|
|
},
|
2024-10-31 08:08:26 -04:00
|
|
|
{
|
|
|
|
"Effect": "Allow",
|
|
|
|
"Action": [
|
|
|
|
"s3:ListBucket"
|
|
|
|
],
|
|
|
|
"Resource": "arn:aws:s3:::fake-template-files"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"Effect": "Allow",
|
|
|
|
"Action": [
|
|
|
|
"s3:PutObject",
|
|
|
|
"s3:GetObject",
|
|
|
|
"s3:DeleteObject"
|
|
|
|
],
|
|
|
|
"Resource": "arn:aws:s3:::fake-template-files/*"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"Effect": "Allow",
|
|
|
|
"Action": [
|
|
|
|
"s3:ListBucket"
|
|
|
|
],
|
|
|
|
"Resource": "arn:aws:s3:::random-bucket-*"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"Effect": "Allow",
|
|
|
|
"Action": [
|
|
|
|
"s3:PutObject",
|
|
|
|
"s3:GetObject",
|
|
|
|
"s3:DeleteObject"
|
|
|
|
],
|
|
|
|
"Resource": "arn:aws:s3:::random-bucket-*"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}' > policy-filestore.json
|
|
|
|
|
|
|
|
mc admin policy create s3 overleaf-filestore policy-filestore.json
|
|
|
|
mc admin policy attach s3 overleaf-filestore \
|
|
|
|
--user=OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID
|
2020-02-12 05:38:32 -05:00
|
|
|
gcs:
|
2023-07-21 07:04:10 -04:00
|
|
|
image: fsouza/fake-gcs-server:1.45.2
|
2020-11-23 10:56:33 -05:00
|
|
|
command: ["--port=9090", "--scheme=http"]
|
|
|
|
healthcheck:
|
|
|
|
test: wget --quiet --output-document=/dev/null http://localhost:9090/storage/v1/b
|
|
|
|
interval: 1s
|
|
|
|
retries: 20
|