Added docker files for the bot and the database

This commit is contained in:
StNicolay 2023-05-07 16:34:41 +03:00
parent 2fb6fbe6a3
commit fd94cb317f
Signed by: StNicolay
GPG Key ID: 9693D04DCD962B0D
6 changed files with 93 additions and 0 deletions

10
.dockerignore Normal file
View File

@ -0,0 +1,10 @@
**/target/
**/.vscode/
**/.env
**/.git/
**/.dockerignore
**/Dockerfile
**/compose.yaml
**/LICENSE
**/README.md
database/

1
.gitignore vendored
View File

@ -2,3 +2,4 @@ target/
.env .env
migration/target/ migration/target/
entity/target/ entity/target/
database/data

11
Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM docker.io/rust:alpine as builder
WORKDIR /build/pass_manager
RUN apk -U upgrade --no-cache && apk add --no-cache musl-dev
COPY . .
RUN cargo install --path .
FROM docker.io/alpine
WORKDIR /app/
RUN apk -U upgrade --no-cache
COPY --from=builder /usr/local/cargo/bin/pass_manager .
CMD ["./pass_manager"]

30
compose.yaml Executable file
View File

@ -0,0 +1,30 @@
version: '3.4'
networks:
password_manager: {}
services:
passmanager:
build: .
restart: always
environment:
TOKEN: ${TOKEN}
DATABASE_URL: 'mysql://manager:passwd123!@db/passmanager'
depends_on:
- db
networks:
- password_manager
db:
build:
context: ./database/
dockerfile: ./Dockerfile
restart: always
environment:
MYSQL_ROOT_PASSWORD: example123!
MYSQL_DATABASE: passmanager
MYSQL_USER: manager
MYSQL_PASSWORD: passwd123!
volumes:
- ./database/data:/var/lib/mysql
networks:
- password_manager

3
database/Dockerfile Executable file
View File

@ -0,0 +1,3 @@
FROM docker.io/mariadb
COPY mariadb.cnf /etc/mysql/mariadb.cnf

38
database/mariadb.cnf Executable file
View File

@ -0,0 +1,38 @@
# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 0. "/etc/mysql/my.cnf" symlinks to this file, reason why all the rest is read.
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.
#
# If the same option is defined multiple times, the last one will apply.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# If you are new to MariaDB, check out https://mariadb.com/kb/en/basic-mariadb-articles/
#
# This group is read both by the client and the server
# use it for options that affect everything
#
[client-server]
# Port or socket location where to connect
# port = 3306
socket = /run/mysqld/mysqld.sock
# Import all .cnf files from configuration directory
[mariadbd]
skip-host-cache
skip-name-resolve
[mysqld]
skip-innodb
default-storage-engine=Aria
default-tmp-storage-engine=Aria
!includedir /etc/mysql/mariadb.conf.d/
!includedir /etc/mysql/conf.d/