mirror of
https://git.mirrors.martin98.com/https://github.com/jina-ai/reader
synced 2025-08-18 07:05:58 +08:00
wip
This commit is contained in:
parent
538d5987cd
commit
9d6fd26d4b
9
.docker/mongo/Dockerfile
Normal file
9
.docker/mongo/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM mongo:latest
|
||||
|
||||
COPY ./random.key /app/repl.key
|
||||
COPY ./init-repl-set.sh /docker-entrypoint-initdb.d/init-repl-set.sh
|
||||
RUN chmod 400 /app/repl.key && chown 999:999 /app/repl.key
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
EXPOSE 27017
|
||||
CMD ["mongod", "--bind_ip_all", "--replSet", "rs0", "--keyFile", "/app/repl.key"]
|
46
.docker/mongo/init-repl-set.sh
Executable file
46
.docker/mongo/init-repl-set.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copied from https://gist.github.com/zhangyoufu/d1d43ac0fa268cda4dd2dfe55a8c834e
|
||||
|
||||
: "${FORKED:=}"
|
||||
if [ -z "${FORKED}" ]; then
|
||||
echo >&2 'mongod for initdb is going to shutdown'
|
||||
mongod --pidfilepath /tmp/docker-entrypoint-temp-mongod.pid --shutdown
|
||||
echo >&2 'replica set will be initialized later'
|
||||
FORKED=1 "${BASH_SOURCE[0]}" &
|
||||
unset FORKED
|
||||
mongodHackedArgs=(:) # bypass mongod --shutdown in docker-entrypoint.sh
|
||||
return
|
||||
fi
|
||||
|
||||
# FIXME: assume mongod listens on 127.0.0.1:27017
|
||||
mongo=( mongosh --host 127.0.0.1 --port 27017 -u "${MONGO_INITDB_ROOT_USERNAME}" -p ${MONGO_INITDB_ROOT_PASSWORD} --quiet )
|
||||
|
||||
tries=30
|
||||
while true; do
|
||||
sleep 1
|
||||
if "${mongo[@]}" --eval 'quit(0)' &> /dev/null; then
|
||||
# success!
|
||||
break
|
||||
fi
|
||||
(( tries-- ))
|
||||
if [ "$tries" -le 0 ]; then
|
||||
echo >&2
|
||||
echo >&2 'error: unable to initialize replica set'
|
||||
echo >&2
|
||||
kill -STOP 1 # initdb won't be executed twice, so fail loudly
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo 'about to initialize replica set'
|
||||
# FIXME: hard-coded replica set name & member host
|
||||
"${mongo[@]}" <<-EOF
|
||||
rs.initiate({
|
||||
_id: "rs0",
|
||||
version: 1,
|
||||
members: [
|
||||
{ _id: 0, host : "mongo-replset-1.dev.jina.ai:27017" },
|
||||
]
|
||||
});
|
||||
EOF
|
1
.docker/mongo/random.key
Normal file
1
.docker/mongo/random.key
Normal file
@ -0,0 +1 @@
|
||||
aabbccddeeff123
|
50
docker-compose.yml
Normal file
50
docker-compose.yml
Normal file
@ -0,0 +1,50 @@
|
||||
services:
|
||||
mongo:
|
||||
build:
|
||||
context: ./.docker/mongo
|
||||
restart: always
|
||||
ports:
|
||||
- 27017:27017
|
||||
environment:
|
||||
MONGO_INITDB_ROOT_USERNAME: localdev
|
||||
MONGO_INITDB_ROOT_PASSWORD: localdev123
|
||||
MONGO_INITDB_DATABASE: dev
|
||||
volumes:
|
||||
- mongo-data:/data/db
|
||||
networks:
|
||||
default:
|
||||
aliases:
|
||||
- mongo-replset-1.dev.jina.ai
|
||||
- mongo.dev.jina.ai
|
||||
|
||||
minio:
|
||||
image: minio/minio
|
||||
hostname: minio
|
||||
ports:
|
||||
- 9001:9001
|
||||
- 9000:9000
|
||||
environment:
|
||||
MINIO_ROOT_USER: minio
|
||||
MINIO_ROOT_PASSWORD: minio123
|
||||
volumes:
|
||||
- minio-data:/data/minio
|
||||
command: server /data/minio --console-address ":9001"
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
'CMD',
|
||||
'curl',
|
||||
'-f',
|
||||
'http://localhost:9001/minio/health/live'
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
networks:
|
||||
default:
|
||||
aliases:
|
||||
- minio.dev.jina.ai
|
||||
|
||||
volumes:
|
||||
minio-data:
|
||||
mongo-data:
|
@ -36,6 +36,7 @@ export class MongoDB extends AbstractMongoDB {
|
||||
this.options = {
|
||||
minPoolSize: 2,
|
||||
maxPoolSize: 10,
|
||||
maxIdleTimeMS: 1000 * 60,
|
||||
};
|
||||
}
|
||||
if (!this.url) {
|
||||
|
27
src/services/storage-bucket.ts
Normal file
27
src/services/storage-bucket.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import { AbstractObjectStorageService, ObjectStorageOptions } from 'civkit/abstract/object-storage';
|
||||
import { GlobalLogger } from './logger';
|
||||
import { SecretExposer } from '../shared';
|
||||
|
||||
|
||||
export class StorageBucket extends AbstractObjectStorageService {
|
||||
|
||||
logger = this.globalLogger.child({ service: this.constructor.name });
|
||||
options!: ObjectStorageOptions;
|
||||
|
||||
constructor(
|
||||
protected globalLogger: GlobalLogger,
|
||||
protected config: SecretExposer,
|
||||
) {
|
||||
super(...arguments);
|
||||
|
||||
this.options = {
|
||||
bucket: process.env.GCP_STORAGE_BUCKET || `${process.env.GCLOUD_PROJECT}.appspot.com`,
|
||||
endPoint: 'https://storage.googleapis.com',
|
||||
region: 'auto',
|
||||
accessKey: this.config.GCP_STORAGE_ACCESS_KEY,
|
||||
secretKey: this.config.GCP_STORAGE_SECRET_KEY,
|
||||
};
|
||||
|
||||
this.dependsOn(globalLogger);
|
||||
}
|
||||
}
|
@ -1 +1 @@
|
||||
Subproject commit 4552b18a12f249a8413ba73700bbe0816e9fde0d
|
||||
Subproject commit 0a59b8f84c03b2099a9785769bedc98573e65847
|
Loading…
x
Reference in New Issue
Block a user