Compare commits
15
Commits
fix_update
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d82a822bab | ||
|
|
dfd19ec9f4 | ||
|
|
82f9ec8f60 | ||
|
|
cf8a8e3795 | ||
|
|
60ba2892be | ||
|
|
243285ae7f | ||
|
|
4f40a047dc | ||
|
|
31b5c61ee5 | ||
|
|
d014ca6cb9 | ||
|
|
4232801ccb | ||
|
|
a73755cb11
|
||
|
|
a28194b4a8 | ||
|
|
2fd4563bf7
|
||
|
|
cc61647a90 | ||
|
|
073ff878c7
|
@@ -1,7 +1,7 @@
|
|||||||
export ENTRYPOINT_VERSION=v4
|
export ENTRYPOINT_VERSION=v4
|
||||||
|
|
||||||
set_settings(){
|
set_settings() {
|
||||||
mongosh wekan --eval '
|
mongosh wekan --eval '
|
||||||
db.settings.updateOne(
|
db.settings.updateOne(
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
@@ -16,10 +16,34 @@ set_settings(){
|
|||||||
)'
|
)'
|
||||||
}
|
}
|
||||||
|
|
||||||
show_mongo_version (){
|
show_mongo_version() {
|
||||||
mongosh --eval 'db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )'
|
mongosh --eval 'db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )'
|
||||||
}
|
}
|
||||||
|
|
||||||
update_mongo_version (){
|
update_mongo_version() {
|
||||||
mongosh --eval 'db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )'
|
mongosh --quiet --eval '
|
||||||
|
const target = db.version().split(".").slice(0, 2).join(".");
|
||||||
|
const command = {setFeatureCompatibilityVersion: target};
|
||||||
|
if (parseInt(target, 10) >= 7) command.confirm = true;
|
||||||
|
print("set featureCompatibilityVersion to " + target);
|
||||||
|
printjson(db.adminCommand(command));
|
||||||
|
'
|
||||||
|
}
|
||||||
|
|
||||||
|
normalize_replset_config() {
|
||||||
|
mongosh --quiet --eval '
|
||||||
|
const local = db.getSiblingDB("local");
|
||||||
|
const stored = local.system.replset.findOne();
|
||||||
|
if (!stored) { print("no stored replica set configuration"); quit(0); }
|
||||||
|
if (db.serverStatus().repl) { // already a set: only a reconfig may write
|
||||||
|
const cfg = rs.conf();
|
||||||
|
cfg.version = cfg.version + 1;
|
||||||
|
printjson(rs.reconfig(cfg));
|
||||||
|
} else { // standalone: nobody is using it yet
|
||||||
|
stored.members.forEach(m => { delete m.slaveDelay; m.secondaryDelaySecs = 0; m.host = "db:27017"; });
|
||||||
|
stored.version = stored.version + 1;
|
||||||
|
local.system.replset.replaceOne({_id: stored._id}, stored);
|
||||||
|
printjson(local.system.replset.findOne());
|
||||||
|
}
|
||||||
|
'
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-16
@@ -1,27 +1,33 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: mongo:8.3
|
image: mongo:7.0
|
||||||
|
hostname: db
|
||||||
environment:
|
environment:
|
||||||
- LOGO_IMG_URL
|
- LOGO_IMG_URL
|
||||||
- LOGO_LINK_URL
|
- LOGO_LINK_URL
|
||||||
command: >
|
command:
|
||||||
sh -c "
|
- bash
|
||||||
mongod --oplogSize 128 --replSet rs0 --quiet --bind_ip_all &
|
- -c
|
||||||
until mongosh --eval 'rs.initiate()' > /dev/null 2>&1; do
|
- |
|
||||||
sleep 2
|
(
|
||||||
done;
|
until mongosh --quiet --eval 'try { rs.status().ok } catch (e) { rs.initiate({_id: "rs0", members: [{_id: 0, host: "db:27017"}]}).ok }' 2>/dev/null | grep -q 1; do
|
||||||
wait"
|
sleep 2
|
||||||
|
done
|
||||||
|
echo "[init] replica set rs0 ready"
|
||||||
|
) &
|
||||||
|
exec mongod --replSet rs0 --bind_ip_all --oplogSize 128 --quiet
|
||||||
volumes:
|
volumes:
|
||||||
- wekan-db:/data/db
|
- wekan-db:/data/db
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
|
test: ["CMD", "mongosh", "--host", "127.0.0.1", "--port", "27017", "--quiet", "--eval", "try { quit(rs.status().ok === 1 && db.hello().isWritablePrimary ? 0 : 1) } catch (e) { quit(1) }"]
|
||||||
interval: 30s
|
interval: 10s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 10
|
retries: 30
|
||||||
start_period: 1m
|
start_period: 5m
|
||||||
|
stop_grace_period: 1m
|
||||||
deploy:
|
deploy:
|
||||||
labels:
|
labels:
|
||||||
backupbot.backup: "${ENABLE_BACKUPS:-true}"
|
backupbot.backup: "${ENABLE_BACKUPS:-true}"
|
||||||
@@ -30,10 +36,10 @@ services:
|
|||||||
backupbot.restore.post-hook: "mongorestore --drop --archive=/data/db/wekan.db"
|
backupbot.restore.post-hook: "mongorestore --drop --archive=/data/db/wekan.db"
|
||||||
|
|
||||||
app:
|
app:
|
||||||
image: quay.io/wekan/wekan:v10.79
|
image: quay.io/wekan/wekan:v12.74
|
||||||
environment:
|
environment:
|
||||||
- METEOR_REACTIVITY_ORDER=changeStreams,oplog,polling
|
- METEOR_REACTIVITY_ORDER=changeStreams,oplog,polling
|
||||||
- MONGO_URL=mongodb://db:27017/wekan
|
- MONGO_URL=mongodb://db:27017/wekan?replicaSet=rs0
|
||||||
- MONGO_OPLOG_URL=mongodb://db:27017/local?replicaSet=rs0
|
- MONGO_OPLOG_URL=mongodb://db:27017/local?replicaSet=rs0
|
||||||
- NODE_OPTIONS="--max_old_space_size=4096"
|
- NODE_OPTIONS="--max_old_space_size=4096"
|
||||||
- DOMAIN
|
- DOMAIN
|
||||||
@@ -76,7 +82,7 @@ services:
|
|||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 10
|
retries: 10
|
||||||
start_period: 3m
|
start_period: 5m
|
||||||
secrets:
|
secrets:
|
||||||
- oauth2_secret
|
- oauth2_secret
|
||||||
configs:
|
configs:
|
||||||
@@ -98,7 +104,7 @@ services:
|
|||||||
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
||||||
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
||||||
- "coop-cloud.${STACK_NAME}.version=4.0.1+v10.79"
|
- "coop-cloud.${STACK_NAME}.version=5.3.0+v12.74"
|
||||||
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
|
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
Important: Run normalize_replset_config and update_mongo_version before and update_mongo_version after the update
|
||||||
Reference in New Issue
Block a user