From 25fb280e291a2f31d63622da93ac281df3d5cece Mon Sep 17 00:00:00 2001 From: "a.bouhuolia" Date: Sat, 4 Mar 2023 23:10:09 +0200 Subject: [PATCH] feat: add docker compose for development env. --- .gitignore | 3 ++- docker-compose.yml | 34 +++++++++++++++++++++++++++++ docker/mongo/Dockerfile | 1 + docker/mysql/Dockerfile | 18 ++++++++++++++++ docker/mysql/my.cnf | 2 ++ docker/redis/Dockerfile | 5 +++++ docker/redis/redis.conf | 48 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 docker-compose.yml create mode 100644 docker/mongo/Dockerfile create mode 100644 docker/mysql/Dockerfile create mode 100644 docker/mysql/my.cnf create mode 100644 docker/redis/Dockerfile create mode 100644 docker/redis/redis.conf diff --git a/.gitignore b/.gitignore index 40b878db5..478576915 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules/ \ No newline at end of file +node_modules/ +data \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..f88ca19b3 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +version: '3.3' + +services: + mysql: + build: + context: ./docker/mysql + args: + - MYSQL_DATABASE=bigcapital_system + - MYSQL_USER=default_user + - MYSQL_PASSWORD=secret + - MYSQL_ROOT_PASSWORD=root + volumes: + - ./data/mysql/:/var/lib/mysql + expose: + - '3306' + ports: + - '3306:3306' + + mongo: + build: ./docker/mongo + expose: + - '27017' + volumes: + - ./data/mongo/:/var/lib/mongodb + ports: + - '27017:27017' + + redis: + build: + context: ./docker/redis + expose: + - "6379" + volumes: + - ./data/redis:/data \ No newline at end of file diff --git a/docker/mongo/Dockerfile b/docker/mongo/Dockerfile new file mode 100644 index 000000000..fe60f11b0 --- /dev/null +++ b/docker/mongo/Dockerfile @@ -0,0 +1 @@ +FROM mongo:5.0 \ No newline at end of file diff --git a/docker/mysql/Dockerfile b/docker/mysql/Dockerfile new file mode 100644 index 000000000..bccbb792e --- /dev/null +++ b/docker/mysql/Dockerfile @@ -0,0 +1,18 @@ +FROM mysql:5.7 + +ADD my.cnf /etc/mysql/conf.d/my.cnf + +RUN chown -R mysql:root /var/lib/mysql/ + +ARG MYSQL_DATABASE=default_database +ARG MYSQL_USER=default_user +ARG MYSQL_PASSWORD=secret +ARG MYSQL_ROOT_PASSWORD=root + +ENV MYSQL_DATABASE=$MYSQL_DATABASE +ENV MYSQL_USER=$MYSQL_USER +ENV MYSQL_PASSWORD=$MYSQL_PASSWORD +ENV MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD + +CMD ["mysqld"] +EXPOSE 3306 \ No newline at end of file diff --git a/docker/mysql/my.cnf b/docker/mysql/my.cnf new file mode 100644 index 000000000..ff1b64f79 --- /dev/null +++ b/docker/mysql/my.cnf @@ -0,0 +1,2 @@ +[mysqld] +bind-address = 0.0.0.0 \ No newline at end of file diff --git a/docker/redis/Dockerfile b/docker/redis/Dockerfile new file mode 100644 index 000000000..1e9373e29 --- /dev/null +++ b/docker/redis/Dockerfile @@ -0,0 +1,5 @@ +FROM redis:4.0 + +COPY redis.conf /usr/local/etc/redis/redis.conf + +CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] \ No newline at end of file diff --git a/docker/redis/redis.conf b/docker/redis/redis.conf new file mode 100644 index 000000000..3f7defc76 --- /dev/null +++ b/docker/redis/redis.conf @@ -0,0 +1,48 @@ +daemonize no +pidfile /var/run/redis.pid +port 6379 +tcp-backlog 511 +timeout 0 +tcp-keepalive 0 +loglevel notice +logfile "" +databases 16 +save 900 1 +save 300 10 +save 60 10000 +stop-writes-on-bgsave-error yes +rdbcompression yes +rdbchecksum yes +dbfilename dump.rdb +slave-serve-stale-data yes +slave-read-only yes +repl-diskless-sync no +repl-diskless-sync-delay 5 +repl-disable-tcp-nodelay no +slave-priority 100 +appendonly no +appendfilename "appendonly.aof" +appendfsync everysec +no-appendfsync-on-rewrite no +auto-aof-rewrite-percentage 100 +auto-aof-rewrite-min-size 64mb +aof-load-truncated yes +lua-time-limit 5000 +slowlog-log-slower-than 10000 +slowlog-max-len 128 +latency-monitor-threshold 0 +notify-keyspace-events "" +hash-max-ziplist-entries 512 +hash-max-ziplist-value 64 +list-max-ziplist-entries 512 +list-max-ziplist-value 64 +set-max-intset-entries 512 +zset-max-ziplist-entries 128 +zset-max-ziplist-value 64 +hll-sparse-max-bytes 3000 +activerehashing yes +client-output-buffer-limit normal 0 0 0 +client-output-buffer-limit slave 256mb 64mb 60 +client-output-buffer-limit pubsub 32mb 8mb 60 +hz 10 +aof-rewrite-incremental-fsync yes \ No newline at end of file