docker: Working database creation

This commit is contained in:
Samuel Ortion 2022-08-23 06:06:18 +02:00
parent 082823892c
commit 1654885838
7 changed files with 14 additions and 47 deletions

View File

@ -4,7 +4,7 @@ CUDA_VISIBLE_DEVICES=""
# BirdNET-stream environment # BirdNET-stream environment
DATABASE_USER="birdnet" DATABASE_USER="birdnet"
DATABASE_PASSWORD="secret" # change this DATABASE_PASSWORD="secret" # change this
DATABASE_PORT="3306" # change this if you have already a running MySQL server on the host DATABASE_PORT="3306"
MYSQL_ROOT_PASSWORD="secret" # change this MYSQL_ROOT_PASSWORD="secret" # change this
RECORDS_DIR="/media/data/birdnet/records" RECORDS_DIR="/media/data/birdnet/records"

1
TODO
View File

@ -1,5 +1,4 @@
- Fix service manager - Fix service manager
- Add docker support
- Species i18n - Species i18n
- File purge policy - File purge policy
- Add and test RTSP support - Add and test RTSP support

View File

@ -25,12 +25,11 @@ services:
image: mariadb:latest image: mariadb:latest
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
ports: ports:
- '3306:3306' - ${DATABASE_PORT:-3306}:3306
networks: networks:
birdnet_network: birdnet_network:
environment: environment:
MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD:-secret}' MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD:-secret}'
MYSQL_DATABASE: ${DATABASE:-birdnet}
MYSQL_USER: ${DATABASE_USER:-birdnet} MYSQL_USER: ${DATABASE_USER:-birdnet}
MYSQL_PASSWORD: ${DATABASE_PASSWORD:-secret} MYSQL_PASSWORD: ${DATABASE_PASSWORD:-secret}
volumes: volumes:

View File

@ -1,12 +0,0 @@
#! /usr/bin/bash
if [[ -z "${MYSQL_USER}" ]]; then
MYSQL_USER="birdnet"
echo "Defaults MYSQL_USER to $MYSQL_USER"
fi
if [[ -z "${MYSQL_USER_PASSWORD}" ]]; then
echo "MYSQL_ROOT_PASSWORD is not set"
exit 1
fi
sed -i "s/<MYSQL_USER>/$MYSQL_USER/g" ./01-databases.sql.template ./01-databases.sql
sed -i "s/<MYSQL_USER_PASSWORD>/$MYSQL_USER_PASSWORD/g" ./01-databases.sql.template ./01-databases.sql

View File

@ -0,0 +1,7 @@
CREATE DATABASE IF NOT EXISTS `birdnet_observations`;
CREATE DATABASE IF NOT EXISTS `birdnet_default`;
GRANT ALL PRIVILEGES ON birdnet_observations.* TO 'birdnet'@'%';
GRANT ALL PRIVILEGES ON birdnet_default.* TO 'birdnet'@'%';
FLUSH PRIVILEGES;

View File

@ -1,6 +0,0 @@
CREATE DATABASE IF NOT EXISTS `birdnet_observations`;
CREATE DATABASE IF NOT EXISTS `birdnet_default`;
CREATE USER '<MYSQL_USER>'@'localhost' IDENTIFIED BY '<MYSQL_PASSWORD>';
GRANT ALL PRIVILEGES ON birdnet_observations.* TO '<MYSQL_USER>'@'%';
GRANT ALL PRIVILEGES ON birdnet_default.* TO '<MYSQL_USER>'@'%';

View File

@ -20,7 +20,7 @@ The splitted approach uses docker-compose and a docker container for each servic
This is the recommended approach to run BirdNET-stream while using docker. This is the recommended approach to run BirdNET-stream while using docker.
Thirst of of all, you need to clone the repository. First of of all, you need to clone the repository.
```bash ```bash
mkdir ~/Documents/BirdNET-stream mkdir ~/Documents/BirdNET-stream
@ -32,34 +32,14 @@ Then, run docker-compose:
```bash ```bash
# Build image (first time only) # Build image (first time only)
docker compose up --build docker compose build
# Run # Run
docker compose up -d docker compose up # add `-d`, to run in background
# Stop # Stop
docker compose down docker compose down
``` ```
## Building and running each of the containers For a one liner:
### birdnet_recording container
Building:
```bash ```bash
docker build -f ./docker/recording/Dockerfile -t birdnet_recording:latest . docker compose up --build
```
Running
```bash
docker run --rm --device /dev/snd birdnet_recording:latest
```
### birdnet_www container
Building:
```bash
docker build -f ./docker/www/Dockerfile -t birdnet_www:latest .
```
Running
```bash
docker run --rm birdnet_www:latest
``` ```