160 lines
5.0 KiB
YAML
160 lines
5.0 KiB
YAML
# version: '3'
|
|
|
|
# services:
|
|
# portainer:
|
|
# image: portainer/portainer-ce:latest
|
|
# container_name: portainer
|
|
# networks:
|
|
# - traefik
|
|
# restart: unless-stopped
|
|
# security_opt:
|
|
# - no-new-privileges:true
|
|
# volumes:
|
|
# - /etc/localtime:/etc/localtime:ro
|
|
# - /var/run/docker.sock:/var/run/docker.sock:ro
|
|
# - /srv/portainer/portainer-data:/data
|
|
# ports:
|
|
# - 9000:9000
|
|
# labels:
|
|
# - "traefik.enable=true"
|
|
# - "traefik.http.routers.portainer.entrypoints=websecure"
|
|
# - "traefik.http.routers.portainer.rule=Host(`portainer.$DOMAIN_NAME`)"
|
|
# - "traefik.http.routers.portainer.tls.certresolver=letsencr"
|
|
# - "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
|
# - "traefik.http.routers.portainer.middlewares=portainer_auth"
|
|
# - "traefik.http.middlewares.portainer_auth.basicauth.users=admin:$$2a$$12$$MkhjqyuriyoE5.Mhz14ZXOkfjE7wUEDb46e9argix38VHZ5aAuGQC"
|
|
|
|
version: "3.7"
|
|
|
|
services:
|
|
# rocketchat:
|
|
# image: registry.rocket.chat/rocketchat/rocket.chat:latest
|
|
# restart: unless-stopped
|
|
# volumes:
|
|
# - /srv/rocket/uploads:/app/uploads
|
|
# environment:
|
|
# MONGO_URL: "mongodb://mongodb:27017/rocketchat?replicaSet=rs0"
|
|
# MONGO_OPLOG_URL: "mongodb://mongodb:27017/local?replicaSet=rs0"
|
|
# ROOT_URL: "https://rocket.knast.cc"
|
|
# # PORT: 3000
|
|
# labels:
|
|
# - "traefik.enable=true"
|
|
# - "traefik.http.routers.rocket.entrypoints=websecure"
|
|
# - "traefik.http.routers.rocket.rule=Host(`rocket.$DOMAIN_NAME`)"
|
|
# - "traefik.http.routers.rocket.tls.certresolver=letsencr"
|
|
# - "traefik.http.services.rocket.loadbalancer.server.port=3000"
|
|
# depends_on:
|
|
# - mongodb
|
|
|
|
|
|
|
|
rocketchat:
|
|
image: ${ROCKETCHAT_IMAGE_TAG}
|
|
volumes:
|
|
- /srv/rocket/uploads:/app/uploads
|
|
environment:
|
|
PORT: 3000
|
|
ROOT_URL: ${ROCKETCHAT_URL}
|
|
MONGO_URL: mongodb://mongodb:27017/rocketchat?replicaSet=rs0
|
|
MONGO_OPLOG_URL: mongodb://mongodb:27017/local?replicaSet=rs0
|
|
DEPLOY_METHOD: docker
|
|
Accounts_UseDNSDomainCheck: 'false'
|
|
networks:
|
|
- traefik
|
|
healthcheck:
|
|
test: >
|
|
/usr/local/bin/node -e '
|
|
const http = require("http");
|
|
const options = {
|
|
host: "localhost",
|
|
port: 3000,
|
|
path: "/api/info",
|
|
timeout: 2000
|
|
};
|
|
const healthCheck = http.request(options, (res) => {
|
|
console.log(`HEALTHCHECK STATUS: $${res.statusCode}`);
|
|
if (res.statusCode == 200) {
|
|
process.exit(0);
|
|
} else {
|
|
process.exit(1);
|
|
}
|
|
});
|
|
healthCheck.on("error", function (err) {
|
|
console.error("ERROR");
|
|
process.exit(1);
|
|
});
|
|
healthCheck.end();'
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 120s
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.rocket.entrypoints=websecure"
|
|
- "traefik.http.routers.rocket.rule=Host(`rocket.$DOMAIN_NAME`)"
|
|
- "traefik.http.routers.rocket.tls.certresolver=letsencr"
|
|
- "traefik.http.services.rocket.loadbalancer.server.port=3000"
|
|
|
|
# - "traefik.enable=true"
|
|
# - "traefik.http.routers.rocketchat.rule=Host(`${ROCKETCHAT_HOSTNAME}`)"
|
|
# - "traefik.http.routers.rocketchat.service=rocketchat"
|
|
# - "traefik.http.routers.rocketchat.entrypoints=websecure"
|
|
# - "traefik.http.services.rocketchat.loadbalancer.server.port=3000"
|
|
# - "traefik.http.routers.rocketchat.tls=true"
|
|
# - "traefik.http.routers.rocketchat.tls.certresolver=letsencrypt"
|
|
# - "traefik.http.services.rocketchat.loadbalancer.passhostheader=true"
|
|
# - "traefik.http.routers.rocketchat.middlewares=compresstraefik"
|
|
# - "traefik.http.middlewares.compresstraefik.compress=true"
|
|
# - "traefik.docker.network=traefik-network"
|
|
restart: unless-stopped
|
|
depends_on:
|
|
mongodb:
|
|
condition: service_healthy
|
|
|
|
mongodb:
|
|
image: docker.io/bitnami/mongodb:latest
|
|
restart: unless-stopped
|
|
volumes:
|
|
- rocket-data:/bitnami/mongodb
|
|
networks:
|
|
- traefik
|
|
# volumes:
|
|
# - type: bind
|
|
# source: /srv/rocket/db
|
|
# target: /bitnami/mongodb
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD",
|
|
"mongo",
|
|
"--quiet",
|
|
"127.0.0.1/test",
|
|
"--eval",
|
|
"'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'",
|
|
]
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 40s
|
|
environment:
|
|
MONGODB_REPLICA_SET_MODE: primary
|
|
MONGODB_REPLICA_SET_NAME: rs0
|
|
MONGODB_PORT_NUMBER: 27017
|
|
MONGODB_INITIAL_PRIMARY_HOST: mongodb
|
|
MONGODB_INITIAL_PRIMARY_PORT_NUMBER: 7017
|
|
MONGODB_ADVERTISED_HOSTNAME: mongodb
|
|
MONGODB_ENABLE_JOURNAL: true
|
|
ALLOW_EMPTY_PASSWORD: yes
|
|
|
|
volumes:
|
|
rocket-data:
|
|
driver: local
|
|
driver_opts:
|
|
o: bind
|
|
type: none
|
|
device: /srv/rocket/db
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|