Halo. Saya sedang mencoba menjalankan librenms menggunakan Container Station. Dengan bantuan dari salah satu anggota forum, saya mengetahui bahwa saya perlu menggunakan “Applications” untuk memasukkan informasi file docker-compose.yml. Saya mencoba menggunakan file ini karena saya berhasil menggunakannya di VM Ubuntu di tempat kerja. docker/examples/compose at master · librenms/docker · GitHub
Namun, ini membutuhkan dua file variabel yang harus berada di direktori yang sama dengan docker-compose.yml. Apakah ada cara untuk melakukan ini dengan Container Station? Saya perlu membuat file .env dan librenms.env di folder github yang sama. Saya juga sudah mencoba kode di sini, tetapi tetap saja database-nya tidak berjalan dengan benar dan muncul error pada db jika digunakan. docker-librenms/docker-compose.yml at master · jarischaefer/docker-librenms · GitHub Ini adalah error-nya: ERROR: DB_HOST must be defined
Bisakah Anda memposting file compose yang Anda gunakan (tentu saja Anda dapat menghapus kata sandi yang digunakan atau cukup menggantinya dengan placeholder)
name: librenms
services:
db:
image: mariadb:10
container_name: librenms_db
command:
- "mysqld"
- "--innodb-file-per-table=1"
- "--lower-case-table-names=1"
- "--character-set-server=utf8mb4"
- "--collation-server=utf8mb4_unicode_ci"
volumes:
- "./db:/var/lib/mysql"
environment:
- "TZ=${TZ}"
- "MARIADB_RANDOM_ROOT_PASSWORD=yes"
- "MYSQL_DATABASE=${MYSQL_DATABASE}"
- "MYSQL_USER=${MYSQL_USER}"
- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
restart: always
redis:
image: redis:7.2-alpine
container_name: librenms_redis
environment:
- "TZ=${TZ}"
restart: always
msmtpd:
image: crazymax/msmtpd:latest
container_name: librenms_msmtpd
env_file:
- "./msmtpd.env"
restart: always
librenms:
image: librenms/librenms:latest
container_name: librenms
hostname: librenms
cap_add:
- NET_ADMIN
- NET_RAW
ports:
- target: 8000
published: 8000
protocol: tcp
depends_on:
- db
- redis
#- msmtpd
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
restart: always
dispatcher:
image: librenms/librenms:latest
container_name: librenms_dispatcher
hostname: librenms-dispatcher
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
- "DISPATCHER_NODE_ID=dispatcher1"
- "SIDECAR_DISPATCHER=1"
restart: always
syslogng:
image: librenms/librenms:latest
container_name: librenms_syslogng
hostname: librenms-syslogng
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
ports:
- target: 514
published: 514
protocol: tcp
- target: 514
published: 514
protocol: udp
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
- "SIDECAR_SYSLOGNG=1"
restart: always
snmptrapd:
image: librenms/librenms:latest
container_name: librenms_snmptrapd
hostname: librenms-snmptrapd
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
ports:
- target: 162
published: 162
protocol: tcp
- target: 162
published: 162
protocol: udp
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
- "SIDECAR_SNMPTRAPD=1"
restart: always
Saya akan menyederhanakan terlebih dahulu .. gunakan YAML dari sini
Cukup ubah port agar tidak menghalangi GUI QNAP Anda
version: '3.9'
services:
web:
image: jarischaefer/docker-librenms
hostname: librenms
ports:
- "8000:80"
volumes:
- ./docker-persistence/logs:/opt/librenms/logs
- ./docker-persistence/rrd:/opt/librenms/rrd
environment:
- APP_KEY=base64:7cVDlhFEZ1dyxIuP38Yy72YuXrcGg1ISwAwZ2dKt4Pk=
- DB_HOST=db
- DB_NAME=librenms
- DB_USER=librenms
- DB_PASS=librenms
- POLLERS=16
- BASE_URL=http://localhost
- DAILY_ON_STARTUP=true
links:
- mysql:db
depends_on:
mysql:
condition: service_healthy
mysql:
image: mysql:8.0
command: --sql-mode=""
ports:
- "3306"
volumes:
- ./docker-persistence/mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_USER=librenms
- MYSQL_PASSWORD=librenms
- MYSQL_DATABASE=librenms
healthcheck:
test: "mysql -h localhost -u root -p$$MYSQL_ROOT_PASSWORD -e 'USE librenms'"
interval: 5s
timeout: 5s
retries: 20
Jika versi minimal ini sudah berjalan, Anda dapat menambah opsi tambahan
Anda tidak dapat melakukan apa yang Anda inginkan dari Container Station (GUI). Anda bisa langsung menuliskan nilai dari variabel lingkungan Anda ke dalam skrip docker compose (seperti yang disarankan oleh orang lain di atas), atau Anda melakukannya dari command line. SSH ke QNAP Anda, buat folder di direktori home Anda, lalu buat file docker-compose.yaml dan di sebelahnya file .env tempat Anda mendefinisikan variabel lingkungan. Setelah itu, Anda dapat melakukan deploy menggunakan docker compose -p your-project-name up -d. Mudah.
Sayangnya tidak berhasil untuk saya:
unknown flag: --project-name
Padahal bantuan docker compose dengan jelas menunjukkan bahwa ini adalah flag yang valid.