├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── apache └── docker-compose.yml ├── athens └── docker-compose.yaml ├── caddy └── docker-compose.yml ├── cockroachdb └── docker-compose.yml ├── code-server └── docker-compose.yml ├── couchbase └── docker-compose.yml ├── elk ├── docker-compose.yaml └── logstash │ └── pipeline │ └── logstash.conf ├── geth └── docker-compose.yml ├── gitlab-ce └── docker-compose.yml ├── grafana └── docker-compose.yml ├── jenkins └── docker-compose.yml ├── jupyter └── docker-compose.yml ├── kafka └── docker-compose.yml ├── keycloak └── docker-compose.yml ├── kong └── docker-compose.yml ├── mailhog └── docker-compose.yml ├── minio ├── docker-compose.yaml └── nginx.conf ├── mongo └── docker-compose.yml ├── mssql └── docker-compose.yml ├── mysql-pma └── docker-compose.yml ├── nextcloud └── docker-compose.yml ├── nginx └── docker-compose.yml ├── node └── docker-compose.yml ├── ocr-tesseract ├── README.md └── docker-compose.yml ├── openfire └── docker-compose.yml ├── pgadmin └── docker-compose.yml ├── portainer └── docker-compose.yml ├── postgres └── docker-compose.yml ├── rabbitmq └── docker-compose.yml ├── redis └── docker-compose.yml ├── rethinkdb └── docker-compose.yml ├── sonarqube └── docker-compose.yml ├── sqlite3 └── docker-compose.yml ├── traefik ├── docker-compose.yaml └── traefik.toml ├── whatsApp-business-API ├── db.env └── docker-compose.yml └── wordpress └── docker-compose.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | # environment 2 | .env 3 | 4 | # volumes 5 | *.sql 6 | pgdata 7 | mongo-data 8 | kafka-data 9 | 10 | # IDE 11 | .idea 12 | 13 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Thank you for considering and taking the time to contribute!💖 This is an experimental project to push newbies and help them take their first step toward open-source world. This will help them to kick-start journey as a Open-Source contributor. 4 | 5 | **Working on your first Pull Request?** You can learn how from this _free_ 6 | series [How to Contribute to an Open Source Project on GitHub][egghead] 7 | 8 | The following are guidelines for contributing to this project. 9 | 10 | ## Project setup 11 | 12 | 1. Fork and clone the repo 13 | 2. Write all about docker 14 | 3. Push your into your working 15 | 4. Make PR and don't forget to edit README.md for contributor. 16 | 17 | > Tip: Keep your `master` branch pointing at the original repository and make 18 | > pull requests from branches on your fork. To do this, run: 19 | > 20 | > ``` 21 | > git remote add upstream https://github.com/kirahxr/dockers 22 | > git fetch upstream 23 | > git branch --set-upstream-to=upstream/master master 24 | > ``` 25 | > 26 | > This will add the original repository as a "remote" called "upstream," Then 27 | > fetch the git information from that remote, then set your local `master` 28 | > branch to use the upstream master branch whenever you run `git pull`. Then you 29 | > can make all of your pull request branches based on this `master` branch. 30 | > Whenever you want to update your version of `master`, do a regular `git pull`. 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Risky Makira 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker 2 | 3 | Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and deploy it as one package. 4 | 5 | ## Getting Started 6 | 7 | These instructions will cover usage information and for the docker container 8 | 9 | ### Prerequisities 10 | 11 | In order to run this container you'll need docker installed. 12 | 13 | * [Windows](https://docs.docker.com/windows/started) 14 | * [OS X](https://docs.docker.com/mac/started/) 15 | * [Linux](https://docs.docker.com/linux/started/) 16 | 17 | ### Usage 18 | 19 | #### Docker Images 20 | 21 | List all images 22 | 23 | ```shell 24 | docker images 25 | ``` 26 | 27 | Delete images 28 | 29 | ```shell 30 | docker rmi [IMAGE ID] 31 | ``` 32 | 33 | #### Docker Container 34 | 35 | List all container 36 | 37 | ```shell 38 | docker ps -a 39 | ``` 40 | 41 | Start docker container 42 | 43 | ```shell 44 | docker start [options] container_id 45 | ``` 46 | 47 | You can specify the container by either using its name or ID (long or short). 48 | To create a new container from an image and start it, use docker run: 49 | 50 | ```shell 51 | docker run [options] image [command] [argument] 52 | 53 | ``` 54 | 55 | ## Docker Compose 56 | 57 | Compose is a tool for defining and running multi-container Docker applications. 58 | With Compose, you use a Compose file to configure your application's services. 59 | Then, using a single command, you create and start all the services 60 | from your configuration. To learn more about all the features of Compose 61 | see [the list of features](https://github.com/docker/docker.github.io/blob/master/compose/index.md#features). 62 | 63 | Using Compose is basically a three-step process. 64 | 65 | 1. Define your app's environment with a `Dockerfile` so it can be 66 | reproduced anywhere. 67 | 2. Define the services that make up your app in `docker-compose.yml` so 68 | they can be run together in an isolated environment. 69 | 3. Lastly, run `docker-compose up` and Compose will start and run your entire app. 70 | 71 | `docker-compose.yml` looks like this: 72 | 73 | version: '3' 74 | 75 | services: 76 | web: 77 | build: . 78 | ports: 79 | - "5000:5000" 80 | volumes: 81 | - .:/code 82 | 83 | 84 | ## Contributing 85 | 86 | Pull requests are welcome. 87 | 88 | See the [guidelines](CONTRIBUTING.md) for contributing to this project. 89 | -------------------------------------------------------------------------------- /apache/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "2" 2 | 3 | services: 4 | apache: 5 | image: "bitnami/apache:latest" 6 | ports: 7 | - "80:8080" 8 | - "443:8443" 9 | volumes: 10 | - /path/to/app:/app 11 | -------------------------------------------------------------------------------- /athens/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: '3.3' 2 | services: 3 | athens: 4 | volumes: 5 | - $PWD/$ATHENS_STORAGE:/var/lib/athens 6 | - $PWD/.gitconfig:/root/.gitconfig 7 | - $PWD/ssh-keys:/root/.ssh 8 | environment: 9 | - ATHENS_DISK_STORAGE_ROOT=/var/lib/athens 10 | - ATHENS_STORAGE_TYPE=disk 11 | container_name: athens-proxy 12 | ports: 13 | - 3000:3000 14 | image: athens:latest -------------------------------------------------------------------------------- /caddy/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | caddy: 5 | image: caddy:alpine 6 | restart: unless-stopped 7 | ports: 8 | - "80:80" 9 | - "443:443" 10 | volumes: 11 | - $PWD/Caddyfile:/etc/caddy/Caddyfile 12 | - $PWD/site:/srv 13 | - caddy_data:/data 14 | - caddy_config:/config 15 | 16 | volumes: 17 | caddy_data: 18 | external: true 19 | caddy_config: 20 | -------------------------------------------------------------------------------- /cockroachdb/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.5' 2 | 3 | services: 4 | 5 | crdb: 6 | image: cockroachdb/cockroach:v19.2.2 7 | ports: 8 | - "26257:26257" 9 | - "8080:8080" 10 | command: start-single-node --insecure 11 | volumes: 12 | - "${PWD}/cockroach-data/crdb:/cockroach/cockroach-data" -------------------------------------------------------------------------------- /code-server/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | code-server: 5 | image: codercom/code-server:latest 6 | user: root 7 | volumes: 8 | - "$PWD:/home/coder/project" 9 | ports: 10 | - "8080:8080" 11 | -------------------------------------------------------------------------------- /couchbase/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | couchbase: 4 | container_name: couchbase 5 | image: couchbase:community 6 | restart: on-failure 7 | ports: 8 | - '8091-8094:8091-8094' 9 | - '11210:11210' 10 | -------------------------------------------------------------------------------- /elk/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | elasticsearch: 4 | image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4 5 | environment: 6 | - cluster.name=docker-cluster 7 | - bootstrap.memory_lock=true 8 | - "ES_JAVA_OPTS=-Xms512m -Xmx512m" 9 | ulimits: 10 | memlock: 11 | soft: -1 12 | hard: -1 13 | volumes: 14 | - esdata1:/usr/share/elasticsearch/data 15 | ports: 16 | - 9200:9200 17 | networks: 18 | - dev 19 | elasticsearch2: 20 | image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4 21 | environment: 22 | - cluster.name=docker-cluster 23 | - bootstrap.memory_lock=true 24 | - "ES_JAVA_OPTS=-Xms512m -Xmx512m" 25 | - "discovery.zen.ping.unicast.hosts=elasticsearch" 26 | ulimits: 27 | memlock: 28 | soft: -1 29 | hard: -1 30 | volumes: 31 | - esdata2:/usr/share/elasticsearch/data 32 | networks: 33 | - dev 34 | depends_on: 35 | - elasticsearch 36 | kibana: 37 | image: docker.elastic.co/kibana/kibana:6.5.4 38 | ports: 39 | - 5601:5601 40 | networks: 41 | - dev 42 | depends_on: 43 | - elasticsearch 44 | - elasticsearch2 45 | 46 | logstash: 47 | image: docker.elastic.co/logstash/logstash:6.5.4 48 | volumes: 49 | - ./logstash/pipeline:/usr/share/logstash/pipeline 50 | ports: 51 | - "5000:5000" 52 | - "9600:9600" 53 | environment: 54 | LS_JAVA_OPTS: "-Xmx256m -Xms256m" 55 | networks: 56 | - dev 57 | depends_on: 58 | - elasticsearch 59 | - elasticsearch2 60 | volumes: 61 | esdata1: 62 | esdata2: 63 | networks: 64 | dev: 65 | driver: bridge -------------------------------------------------------------------------------- /elk/logstash/pipeline/logstash.conf: -------------------------------------------------------------------------------- 1 | input { 2 | tcp { 3 | port => 5000 4 | } 5 | } 6 | 7 | filter { 8 | json { 9 | source => "message" 10 | target => "message" 11 | } 12 | } 13 | 14 | ## Add your filters / logstash plugins configuration here 15 | 16 | output { 17 | elasticsearch { 18 | hosts => "elasticsearch:9200" 19 | #user => elastic 20 | #password => changeme 21 | index => "your_index" 22 | } 23 | } -------------------------------------------------------------------------------- /geth/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | 3 | services: 4 | geth: 5 | image: ethereum/client-go 6 | pull_policy: always 7 | container_name: geth 8 | restart: unless-stopped 9 | ports: 10 | - target: 8546 11 | host_ip: 127.0.0.1 12 | published: 8546 13 | protocol: tcp 14 | mode: host 15 | - target: 8545 16 | host_ip: 127.0.0.1 17 | published: 8545 18 | protocol: tcp 19 | mode: host 20 | - target: 8551 21 | host_ip: 127.0.0.1 22 | published: 8551 23 | protocol: tcp 24 | mode: host 25 | - target: 30303 26 | host_ip: 0.0.0.0 27 | published: 30303 28 | mode: host 29 | volumes: 30 | - ${GETH_DATADIR:-/data/geth}:/root/.ethereum 31 | stop_signal: SIGINT 32 | stop_grace_period: 2m 33 | healthcheck: 34 | test: ["CMD-SHELL", "geth attach --exec eth.blockNumber"] 35 | interval: 10s 36 | timeout: 5s 37 | retries: 5 38 | command: 39 | - --http 40 | - --ws 41 | - --authrpc.jwtsecret=/root/.ethereum/jwt.hex 42 | - --txlookuplimit=0 43 | logging: 44 | driver: json-file 45 | options: 46 | max-size: 2m 47 | max-file: 10 48 | prysm: 49 | image: gcr.io/prysmaticlabs/prysm/beacon-chain 50 | pull_policy: always 51 | container_name: beacon 52 | restart: unless-stopped 53 | stop_grace_period: 2m 54 | volumes: 55 | - ${PRYSM_DATADIR:-/data/prysm}:/data 56 | - ${GETH_DATADIR:-/data/geth}:/geth 57 | depends_on: 58 | geth: 59 | condition: service_healthy 60 | ports: 61 | - target: 3500 62 | host_ip: 127.0.0.1 63 | published: 3500 64 | protocol: tcp 65 | mode: host 66 | - target: 4000 67 | host_ip: 127.0.0.1 68 | published: 4000 69 | protocol: tcp 70 | mode: host 71 | - target: 13000 72 | host_ip: 0.0.0.0 73 | published: 13000 74 | mode: host 75 | - target: 12000 76 | host_ip: 0.0.0.0 77 | published: 12000 78 | mode: host 79 | command: 80 | - --accept-terms-of-use 81 | - --datadir=/data 82 | - --disable-monitoring 83 | - --execution-endpoint=http://geth:8551 84 | - --jwt-secret=/geth/jwt.hex 85 | logging: 86 | driver: json-file 87 | options: 88 | max-size: 2m 89 | max-file: 10 90 | -------------------------------------------------------------------------------- /gitlab-ce/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | gitlab: 5 | image: 'gitlab/gitlab-ce:latest' 6 | restart: always 7 | hostname: 'yourhost.com' 8 | links: 9 | - postgresql:postgresql 10 | - redis:redis 11 | environment: 12 | GITLAB_OMNIBUS_CONFIG: | 13 | postgresql['enable'] = false 14 | gitlab_rails['db_username'] = "gitlab" 15 | gitlab_rails['db_password'] = "gitlab" 16 | gitlab_rails['db_host'] = "postgresql" 17 | gitlab_rails['db_port'] = "5432" 18 | gitlab_rails['db_database'] = "gitlabhq_production" 19 | gitlab_rails['db_adapter'] = 'postgresql' 20 | gitlab_rails['db_encoding'] = 'utf8' 21 | redis['enable'] = false 22 | gitlab_rails['redis_host'] = 'redis' 23 | gitlab_rails['redis_port'] = '6379' 24 | external_url 'https://yourhost.com:8987' 25 | gitlab_rails['gitlab_shell_ssh_port'] = 30022 26 | ports: 27 | - "30080:80" 28 | - "8987:443" 29 | - "30022:22" 30 | postgresql: 31 | restart: always 32 | image: postgres:9.6.2-alpine 33 | environment: 34 | - POSTGRES_USER=gitlab 35 | - POSTGRES_PASSWORD=gitlab 36 | - POSTGRES_DB=gitlabhq_production 37 | # the following are hints on what volumes to mount if you want to persist data 38 | # volumes: 39 | # - data/postgresql:/var/lib/postgresql:rw 40 | 41 | redis: 42 | restart: always 43 | image: redis:3.0.7-alpine -------------------------------------------------------------------------------- /grafana/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | grafana: 5 | image: grafana/grafana 6 | ports: 7 | - '3014:3000' 8 | environment: 9 | - 'GF_SECURITY_ADMIN_PASSWORD=yourpassword' 10 | volumes: 11 | - grafana_data:/opt/grafana/data 12 | volumes: 13 | grafana_data: 14 | driver: local -------------------------------------------------------------------------------- /jenkins/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.5' 2 | 3 | services: 4 | jenkins: 5 | container_name: jenkins 6 | user: root 7 | image: jenkins/jenkins:alpine 8 | volumes: 9 | - './jenkins:/var/jenkins_home' 10 | ports: 11 | - '8080:8080' 12 | - '50000:50000' 13 | 14 | volumes: 15 | jenkins: -------------------------------------------------------------------------------- /jupyter/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | datascience-notebook: 4 | image: jupyter/datascience-notebook 5 | volumes: 6 | - /Absolute/Path/To/Where/Your/Notebook/Files/Will/Be/Saved:/home/yourname/work 7 | ports: 8 | - 8888:8888 9 | container_name: datascience-notebook-container 10 | -------------------------------------------------------------------------------- /kafka/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | services: 3 | 4 | zookeeper: 5 | image: wurstmeister/zookeeper:latest 6 | container_name: zookeeper 7 | ports: 8 | - 2181:2181 9 | 10 | kafka: 11 | image: wurstmeister/kafka:latest 12 | container_name: kafka 13 | depends_on: 14 | - zookeeper 15 | ports: 16 | - 9092:9092 17 | environment: 18 | - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 19 | - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 20 | - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 21 | volumes: 22 | - ./kafka-data:/var/lib/kafka-data/data 23 | 24 | volumes: 25 | kafka-data: -------------------------------------------------------------------------------- /keycloak/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | keycloak-service: 4 | image: jboss/keycloak:latest 5 | container_name: keycloak-service 6 | ports: 7 | - 7001:8080 8 | depends_on: 9 | - mssql 10 | environment: 11 | - KEYCLOAK_USER=${KEYCLOAK_USER} 12 | - KEYCLOAK_PASSWORD=${KEYCLOAK_PASSWORD} 13 | - DB_ADDR=mssql 14 | - DB_VENDOR=mssql 15 | - DB_DATABASE=keycloak-service 16 | - DB_USER=${MSSQL_DB_USER} 17 | - DB_PASSWORD=${MSSQL_DB_PASSWORD} 18 | - DB_PORT=${MSSQL_DB_PORT} 19 | -------------------------------------------------------------------------------- /kong/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.9' 2 | 3 | x-kong-config: 4 | &kong-env 5 | KONG_DATABASE: ${KONG_DATABASE:-off} 6 | KONG_PG_DATABASE: ${KONG_PG_DATABASE:-kong} 7 | KONG_PG_HOST: db 8 | KONG_PG_USER: ${KONG_PG_USER:-kong} 9 | KONG_PG_PASSWORD_FILE: /run/secrets/kong_postgres_password 10 | 11 | volumes: 12 | kong_data: {} 13 | kong_prefix_vol: 14 | driver_opts: 15 | type: tmpfs 16 | device: tmpfs 17 | kong_tmp_vol: 18 | driver_opts: 19 | type: tmpfs 20 | device: tmpfs 21 | 22 | networks: 23 | kong-net: 24 | external: false 25 | 26 | services: 27 | kong-migrations: 28 | image: "${KONG_DOCKER_TAG:-kong:latest}" 29 | command: kong migrations bootstrap 30 | profiles: [ "database" ] 31 | depends_on: 32 | - db 33 | environment: 34 | <<: *kong-env 35 | secrets: 36 | - kong_postgres_password 37 | networks: 38 | - kong-net 39 | restart: on-failure 40 | 41 | kong-migrations-up: 42 | image: "${KONG_DOCKER_TAG:-kong:latest}" 43 | command: kong migrations up && kong migrations finish 44 | profiles: [ "database" ] 45 | depends_on: 46 | - db 47 | environment: 48 | <<: *kong-env 49 | secrets: 50 | - kong_postgres_password 51 | networks: 52 | - kong-net 53 | restart: on-failure 54 | 55 | kong: 56 | image: "${KONG_DOCKER_TAG:-kong:latest}" 57 | user: "${KONG_USER:-kong}" 58 | environment: 59 | <<: *kong-env 60 | KONG_ADMIN_ACCESS_LOG: /dev/stdout 61 | KONG_ADMIN_ERROR_LOG: /dev/stderr 62 | KONG_PROXY_LISTEN: "${KONG_PROXY_LISTEN:-0.0.0.0:8000}" 63 | KONG_ADMIN_LISTEN: "${KONG_ADMIN_LISTEN:-0.0.0.0:8001}" 64 | KONG_PROXY_ACCESS_LOG: /dev/stdout 65 | KONG_PROXY_ERROR_LOG: /dev/stderr 66 | KONG_PREFIX: ${KONG_PREFIX:-/var/run/kong} 67 | KONG_DECLARATIVE_CONFIG: "/opt/kong/kong.yaml" 68 | secrets: 69 | - kong_postgres_password 70 | networks: 71 | - kong-net 72 | ports: 73 | - "${KONG_INBOUND_PROXY_LISTEN:-0.0.0.0}:8000:8000/tcp" 74 | - "${KONG_INBOUND_SSL_PROXY_LISTEN:-0.0.0.0}:8443:8443/tcp" 75 | - "127.0.0.1:8001:8001/tcp" 76 | - "127.0.0.1:8444:8444/tcp" 77 | healthcheck: 78 | test: [ "CMD", "kong", "health" ] 79 | interval: 10s 80 | timeout: 10s 81 | retries: 10 82 | restart: on-failure:5 83 | read_only: true 84 | volumes: 85 | - kong_prefix_vol:${KONG_PREFIX:-/var/run/kong} 86 | - kong_tmp_vol:/tmp 87 | - ./config:/opt/kong 88 | security_opt: 89 | - no-new-privileges 90 | 91 | db: 92 | image: postgres:9.5 93 | profiles: [ "database" ] 94 | environment: 95 | POSTGRES_DB: ${KONG_PG_DATABASE:-kong} 96 | POSTGRES_USER: ${KONG_PG_USER:-kong} 97 | POSTGRES_PASSWORD_FILE: /run/secrets/kong_postgres_password 98 | secrets: 99 | - kong_postgres_password 100 | healthcheck: 101 | test: [ "CMD", "pg_isready", "-U", "${KONG_PG_USER:-kong}" ] 102 | interval: 30s 103 | timeout: 30s 104 | retries: 3 105 | restart: on-failure 106 | stdin_open: true 107 | tty: true 108 | networks: 109 | - kong-net 110 | volumes: 111 | - kong_data:/var/lib/postgresql/data 112 | 113 | secrets: 114 | kong_postgres_password: 115 | file: ./POSTGRES_PASSWORD 116 | -------------------------------------------------------------------------------- /mailhog/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # docker-compose.yml 2 | version: '3' 3 | services: 4 | mailhog: 5 | image: mailhog/mailhog 6 | ports: 7 | - "1025:1025" #smtp 8 | - "8025:8025" 9 | networks: 10 | - web 11 | 12 | networks: 13 | web: 14 | driver: bridge 15 | -------------------------------------------------------------------------------- /minio/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | # Settings and configurations that are common for all containers 4 | x-minio-common: &minio-common 5 | image: quay.io/minio/minio:RELEASE.2022-02-05T04-40-59Z 6 | command: server --console-address ":9001" http://minio{1...4}/data{1...2} 7 | expose: 8 | - "9000" 9 | - "9001" 10 | environment: 11 | MINIO_ROOT_USER: minio 12 | MINIO_ROOT_PASSWORD: minio123 13 | healthcheck: 14 | test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] 15 | interval: 30s 16 | timeout: 20s 17 | retries: 3 18 | 19 | # starts 4 docker containers running minio server instances. 20 | # using nginx reverse proxy, load balancing, you can access 21 | # it through port 9000. 22 | services: 23 | minio1: 24 | <<: *minio-common 25 | hostname: minio1 26 | volumes: 27 | - data1-1:/data1 28 | - data1-2:/data2 29 | 30 | minio2: 31 | <<: *minio-common 32 | hostname: minio2 33 | volumes: 34 | - data2-1:/data1 35 | - data2-2:/data2 36 | 37 | minio3: 38 | <<: *minio-common 39 | hostname: minio3 40 | volumes: 41 | - data3-1:/data1 42 | - data3-2:/data2 43 | 44 | minio4: 45 | <<: *minio-common 46 | hostname: minio4 47 | volumes: 48 | - data4-1:/data1 49 | - data4-2:/data2 50 | 51 | nginx: 52 | image: nginx:1.19.2-alpine 53 | hostname: nginx 54 | volumes: 55 | - ./nginx.conf:/etc/nginx/nginx.conf:ro 56 | ports: 57 | - "9000:9000" 58 | - "9001:9001" 59 | depends_on: 60 | - minio1 61 | - minio2 62 | - minio3 63 | - minio4 64 | 65 | ## By default this config uses default local driver, 66 | ## For custom volumes replace with volume driver configuration. 67 | volumes: 68 | data1-1: 69 | data1-2: 70 | data2-1: 71 | data2-2: 72 | data3-1: 73 | data3-2: 74 | data4-1: 75 | data4-2: 76 | -------------------------------------------------------------------------------- /minio/nginx.conf: -------------------------------------------------------------------------------- 1 | user nginx; 2 | worker_processes auto; 3 | 4 | error_log /var/log/nginx/error.log warn; 5 | pid /var/run/nginx.pid; 6 | 7 | events { 8 | worker_connections 4096; 9 | } 10 | 11 | http { 12 | include /etc/nginx/mime.types; 13 | default_type application/octet-stream; 14 | 15 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 16 | '$status $body_bytes_sent "$http_referer" ' 17 | '"$http_user_agent" "$http_x_forwarded_for"'; 18 | 19 | access_log /var/log/nginx/access.log main; 20 | sendfile on; 21 | keepalive_timeout 65; 22 | 23 | # include /etc/nginx/conf.d/*.conf; 24 | 25 | upstream minio { 26 | server minio1:9000; 27 | server minio2:9000; 28 | server minio3:9000; 29 | server minio4:9000; 30 | } 31 | 32 | upstream console { 33 | ip_hash; 34 | server minio1:9001; 35 | server minio2:9001; 36 | server minio3:9001; 37 | server minio4:9001; 38 | } 39 | 40 | server { 41 | listen 9000; 42 | listen [::]:9000; 43 | server_name localhost; 44 | 45 | # To allow special characters in headers 46 | ignore_invalid_headers off; 47 | # Allow any size file to be uploaded. 48 | # Set to a value such as 1000m; to restrict file size to a specific value 49 | client_max_body_size 0; 50 | # To disable buffering 51 | proxy_buffering off; 52 | 53 | location / { 54 | proxy_set_header Host $http_host; 55 | proxy_set_header X-Real-IP $remote_addr; 56 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 57 | proxy_set_header X-Forwarded-Proto $scheme; 58 | 59 | proxy_connect_timeout 300; 60 | # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 61 | proxy_http_version 1.1; 62 | proxy_set_header Connection ""; 63 | chunked_transfer_encoding off; 64 | 65 | proxy_pass http://minio; 66 | } 67 | } 68 | 69 | server { 70 | listen 9001; 71 | listen [::]:9001; 72 | server_name localhost; 73 | 74 | # To allow special characters in headers 75 | ignore_invalid_headers off; 76 | # Allow any size file to be uploaded. 77 | # Set to a value such as 1000m; to restrict file size to a specific value 78 | client_max_body_size 0; 79 | # To disable buffering 80 | proxy_buffering off; 81 | 82 | location / { 83 | proxy_set_header Host $http_host; 84 | proxy_set_header X-Real-IP $remote_addr; 85 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 86 | proxy_set_header X-Forwarded-Proto $scheme; 87 | proxy_set_header X-NginX-Proxy true; 88 | 89 | # This is necessary to pass the correct IP to be hashed 90 | real_ip_header X-Real-IP; 91 | 92 | proxy_connect_timeout 300; 93 | 94 | # To support websocket 95 | proxy_http_version 1.1; 96 | proxy_set_header Upgrade $http_upgrade; 97 | proxy_set_header Connection "upgrade"; 98 | 99 | chunked_transfer_encoding off; 100 | 101 | proxy_pass http://console; 102 | } 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /mongo/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | services: 3 | mongodb: 4 | image: mongo 5 | container_name: mongodb 6 | environment: 7 | - MONGO_INITDB_DATABASE=mongodb 8 | - MONGO_INITDB_ROOT_USERNAME=mongo 9 | - MONGO_INITDB_ROOT_PASSWORD=changeme 10 | ports: 11 | - 27017:27017 12 | volumes: 13 | - ./mongo-data:/data/db 14 | 15 | volumes: 16 | mongo-data: 17 | 18 | -------------------------------------------------------------------------------- /mssql/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | mssql: 4 | image: mcr.microsoft.com/mssql/server:2017-CU19-ubuntu-16.04 5 | container_name: mssql 6 | ports: 7 | - 1433:1433 8 | environment: 9 | - ACCEPT_EULA=Y 10 | - SA_PASSWORD=${MSSQL_DB_PASSWORD} 11 | volumes: 12 | - "mssqlsystem:/var/opt/mssql" 13 | restart: unless-stopped 14 | 15 | volumes: 16 | mssqlsystem: 17 | external: true 18 | -------------------------------------------------------------------------------- /mysql-pma/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version : '3' 2 | 3 | services: 4 | mysql: 5 | image: mysql:latest 6 | container_name: dev_mysql 7 | environment: 8 | MYSQL_USER: user 9 | MYSQL_PASSWORD: user 10 | MYSQL_ROOT_PASSWORD: root 11 | MYSQL_DATABASE: default_schema 12 | 13 | phpmyadmin: 14 | image: phpmyadmin/phpmyadmin 15 | container_name: dev_pma 16 | links: 17 | - mysql 18 | environment: 19 | PMA_HOST: mysql 20 | PMA_PORT: 3306 21 | PMA_ARBITRARY: 1 22 | restart: always 23 | ports: 24 | - 8183:80 -------------------------------------------------------------------------------- /nextcloud/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | db: 5 | image: postgres:alpine 6 | restart: always 7 | volumes: 8 | - db:/var/lib/postgresql/data 9 | environment: 10 | - POSTGRES_DB=nextcloud_db 11 | - POSTGRES_USER=nextcloud 12 | - POSTGRES_PASSWORD=1234 13 | - PGDATA=/var/lib/postgresql/data/pgdata 14 | 15 | app: 16 | image: nextcloud 17 | restart: always 18 | ports: 19 | - 8080:80 20 | links: 21 | - db 22 | volumes: 23 | - nextcloud:/var/www/html 24 | environment: 25 | - POSTGRES_HOST=db 26 | - POSTGRES_USER=nextcloud 27 | - POSTGRES_PASSWORD=1234 28 | - POSTGRES_DATABASE=nextcloud_db 29 | 30 | volumes: 31 | nextcloud: 32 | db: 33 | -------------------------------------------------------------------------------- /nginx/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | services: 3 | webserver: 4 | image: nginx:alpine 5 | container_name: webserver 6 | restart: unless-stopped 7 | tty: true 8 | ports: 9 | - "80:80" 10 | - "443:443" -------------------------------------------------------------------------------- /node/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | nodejs: 4 | container_name: node 5 | build: 6 | context: . 7 | volumes: 8 | - .:/app 9 | - /app/node_modules 10 | ports: 11 | - 3000:3000 12 | -------------------------------------------------------------------------------- /ocr-tesseract/README.md: -------------------------------------------------------------------------------- 1 | # OCR API Build With Python Tesseract 2 | 3 | ## Resources 4 | [Github Repository](https://github.com/M1n007/ocr-simple-api) \ 5 | [Docker Hub](https://hub.docker.com/repository/docker/kirahxr/ocr-python) \ 6 | [Postman Collection](https://www.getpostman.com/collections/62b8b6aa4c324c27d6d3) 7 | 8 | ## Modules! 9 | 10 | - flask 11 | - opencv-contrib-python-headless 12 | - pytesseract 13 | - gevent 14 | - pillow 15 | - spacy 16 | - numpy (no required) 17 | 18 | ## Features! 19 | 20 | - Find word at Images 21 | 22 | ## Result 23 | 24 | #### Sample Json Result 25 | 26 | ```json 27 | { 28 | "data": { 29 | "imageResult": "iVBORw0KGgoAAAANSUhEUgAABGoAAATACAIAAAAnUjbZAAAgAElxxxxxx==", 30 | "text": "BAB1\nKorupsi dan Perburuan Rente\nPENDAHULUAN\n\nMasalah korupsi di negera Indonesia benar-benar harus menjadi atensi semua elemen bangsa.\nSulit sekali membersihkan korupsi di negeri ini. Kotoran tersebar di mana-mana. Keelokan\nnegeri untaian zamrud khatulistiwa kian memudar. Bersih-bersih menjadi percuma karena\nkembali terlumuri sampah. Awal tahun 2020 yang sejatinya disambut dengan harapan baru,\njustru dikagetkan dengan operasi tangkap tangan.\n\nInsiden penangkapan pejabat publik melalui operasi tangkap tangan (OTT) dalam waktu yang\nhampir bersamaan bisa jadi laksana fenomena gunung es. Itu berarti kasus serupa sejatinya\nbanyak, hanya belum terendus Komisi Pemberantasan Korupsi (KPK). Apalagi, pada tahun 2020\nsemua elite dan partai politik sedang bersiap menyongsong pemilihan kepala dacrah (Pilkada)\nserentak. Momentum tersebut potensial dimanfaatkan untuk memobilisasi sumber dana dari\nmana pun demi kepentingan pemenangan Pilkada.\n\nSejarah menunjukkan, perguruan tinggi selalu menjadi simbol perlawanan, tanpa terkecuali\nterhadap kejahatan korupsi, meskipun perguruan tinggi pun tak luput dari jerat kejahatan korupsi\ndan rent seeking activity. Perguruan tinggi yang di dalamnya ada mahasiswa dan dosen\nmerupakan perwujudan masyarakat sipil (civil society) yang dapat menjadi lokomotif dan\npelopor pemberantasan korupsi di negara ini. Sebagai perwujudan masyarakat sipil perguruan\ntinggi dapat menjadi gerakan penyeimbang dan kontrol terhadap lembaga penegak hukum dan\naparat keamanan yang berwenang memberantas korupsi.\n\nSalah satu upaya pemberantasan korupsi yang bisa dilakukan civitas akademika adalah melalui\nriset ekonomi politik tentang korupsi dan rent seeking activity.\n\nKorupsi berasal dari kata cerruptio atau corruptus, secara harafiah bermakna perilaku\nberbohong, tidak jujur, tidak bermoral, dapat disuap, mencuri dan lain sebagainya. Menurut\nKamus Umum Bahasa Indonesia, korupsi bermakna perbuatan busuk seperti penggelapan uang,\ndapat disuap. Korupsi berbagai macam jenisnya mengikuti perekmbangan teknologi.\n\nBaharudin lopa membagi korupsi menjadi dua bentuk, yaitu material/economic corruption dan\npolitical corruption, Bentuk pertama adalah yang lebih banyak menyangkut penyelewengan di\n\n1" 31 | }, 32 | "err": false, 33 | "message": "successfully recognized image" 34 | } 35 | 36 | ``` 37 | 38 | #### Sample Image Result 39 | 40 | ![Imgur Image](https://i.imgur.com/OWuoF6v.png) 41 | -------------------------------------------------------------------------------- /ocr-tesseract/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | ocr-tesseract: 5 | image: kirahxr/ocr-python:1.0.1 6 | ports: 7 | - "3000:3000" 8 | -------------------------------------------------------------------------------- /openfire/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | openfire: 4 | image: sameersbn/openfire:3.10.3-19 5 | ports: 6 | - 9090:9090 7 | - 5222:5222 8 | - 7777:7777 9 | container_name: openfire 10 | volumes: 11 | - $PWD/data/openfire:/var/lib/openfire 12 | networks: 13 | back-tier: 14 | 15 | networks: 16 | back-tier: 17 | -------------------------------------------------------------------------------- /pgadmin/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.5' 2 | 3 | services: 4 | pgadmin: 5 | container_name: pgadmin_container 6 | image: dpage/pgadmin4 7 | environment: 8 | PGADMIN_DEFAULT_EMAIL: '${PGADMIN_DEFAULT_EMAIL:-mail@domain.com}' 9 | PGADMIN_DEFAULT_PASSWORD: '${PGADMIN_DEFAULT_PASSWORD:-changeme}' 10 | PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION: '${PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION:-True}' 11 | PGADMIN_CONFIG_LOGIN_BANNER: '${PGADMIN_CONFIG_LOGIN_BANNER:-Authorised users only!}' 12 | PGADMIN_CONFIG_CONSOLE_LOG_LEVEL: '${PGADMIN_CONFIG_CONSOLE_LOG_LEVEL:-10}' 13 | volumes: 14 | - 'pgadmin:/root/.pgadmin' 15 | ports: 16 | - '${PGADMIN_PORT:-5050}:80' 17 | restart: unless-stopped 18 | 19 | volumes: 20 | pgadmin: 21 | 22 | -------------------------------------------------------------------------------- /portainer/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | portainer: 5 | container_name: portainer 6 | image: portainer/portainer-ce 7 | restart: always 8 | volumes: 9 | - portainer_data:/data 10 | - /var/run/docker.sock:/var/run/docker.sock 11 | ports: 12 | - '8000:8000' 13 | - '9000:9000' 14 | - '9443:9443' 15 | 16 | volumes: 17 | portainer_data: 18 | -------------------------------------------------------------------------------- /postgres/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | 4 | postgressql: 5 | image: postgres 6 | container_name: postgressql 7 | environment: 8 | - POSTGRES_USER=postgres 9 | - POSTGRES_PASSWORD=changeme 10 | - POSTGRES_DB=postgres 11 | ports: 12 | - 5432:5432 13 | volumes: 14 | - ./postgres-data:/var/lib/postgresql/data 15 | 16 | volumes: 17 | postgres-data: 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /rabbitmq/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | rabbitmq: 4 | image: rabbitmq:3-management-alpine 5 | container_name: rabbitmq 6 | volumes: 7 | - ./.docker/rabbitmq/etc/:/etc/rabbitmq/ 8 | - ./.docker/rabbitmq/data/:/var/lib/rabbitmq/ 9 | - ./.docker/rabbitmq/logs/:/var/log/rabbitmq/ 10 | environment: 11 | RABBITMQ_ERLANG_COOKIE: ${RABBITMQ_ERLANG_COOKIE} 12 | RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER} 13 | RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS} 14 | ports: 15 | - 5672:5672 16 | - 15672:15672 17 | -------------------------------------------------------------------------------- /redis/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | redis: 4 | image: redis 5 | container_name: redis 6 | - REDIS_HOST=redis 7 | ports: 8 | - 6379:6379 9 | 10 | 11 | -------------------------------------------------------------------------------- /rethinkdb/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | rethinkdb: 5 | image: rethinkdb:latest 6 | volumes: 7 | - "./data/rethink:/data" 8 | command: rethinkdb --bind all -d /data --no-update-check 9 | ports: 10 | - "8080:8080" 11 | - "29015:29015" 12 | - "28015:28015" 13 | -------------------------------------------------------------------------------- /sonarqube/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "2" 2 | 3 | services: 4 | sonarqube: 5 | image: sonarqube:8.2-community 6 | depends_on: 7 | - db 8 | ports: 9 | - "9000:9000" 10 | networks: 11 | - sonarnet 12 | environment: 13 | SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar 14 | SONAR_JDBC_USERNAME: sonar 15 | SONAR_JDBC_PASSWORD: sonar 16 | volumes: 17 | - sonarqube_data:/opt/sonarqube/data 18 | - sonarqube_extensions:/opt/sonarqube/extensions 19 | - sonarqube_logs:/opt/sonarqube/logs 20 | - sonarqube_temp:/opt/sonarqube/temp 21 | db: 22 | image: postgres 23 | networks: 24 | - sonarnet 25 | environment: 26 | POSTGRES_USER: sonar 27 | POSTGRES_PASSWORD: sonar 28 | volumes: 29 | - postgresql:/var/lib/postgresql 30 | # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52 31 | - postgresql_data:/var/lib/postgresql/data 32 | 33 | networks: 34 | sonarnet: 35 | driver: bridge 36 | 37 | volumes: 38 | sonarqube_data: 39 | sonarqube_extensions: 40 | sonarqube_logs: 41 | sonarqube_temp: 42 | postgresql: 43 | postgresql_data: -------------------------------------------------------------------------------- /sqlite3/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | sqlite3: 5 | image: nouchka/sqlite3 6 | stdin_open: true 7 | tty: true 8 | volumes: 9 | - ./db:/root/db/ 10 | -------------------------------------------------------------------------------- /traefik/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | reverse-proxy: 4 | image: traefik # The official Traefik docker image 5 | command: --api --docker # Enables the web UI and tells Traefik to listen to docker 6 | ports: 7 | - "80:80" 8 | - "443:443" 9 | - "8080:8080" 10 | volumes: 11 | - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events 12 | - $PWD/traefik.toml:/traefik.toml 13 | 14 | networks: 15 | default: 16 | external: 17 | name: traefik-default #your custom network, you can see in "docker network ls" 18 | -------------------------------------------------------------------------------- /traefik/traefik.toml: -------------------------------------------------------------------------------- 1 | [entryPoints] 2 | [entryPoints.http] 3 | address = ":80" 4 | [entryPoints.https] 5 | address = ":443" 6 | -------------------------------------------------------------------------------- /whatsApp-business-API/db.env: -------------------------------------------------------------------------------- 1 | WA_DB_ENGINE=MYSQL 2 | WA_DB_HOSTNAME=db 3 | WA_DB_PORT=3306 4 | WA_DB_USERNAME=root 5 | WA_DB_PASSWORD=root 6 | WA_DB_CONNECTION_IDLE_TIMEOUT=180000 -------------------------------------------------------------------------------- /whatsApp-business-API/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | version: '3' 7 | 8 | volumes: 9 | whatsappMedia: 10 | driver: local 11 | 12 | services: 13 | wacore: 14 | image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.37.1 docker-compose )} 15 | command: ["/opt/whatsapp/bin/wait_on_mysql.sh", "/opt/whatsapp/bin/launch_within_docker.sh"] 16 | volumes: 17 | - whatsappMedia:/usr/local/wamedia 18 | env_file: 19 | - db.env 20 | environment: 21 | # This is the version of the docker templates being used to run WhatsApp Business API 22 | WA_RUNNING_ENV_VERSION: v2.2.3 23 | ORCHESTRATION: DOCKER-COMPOSE 24 | network_mode: bridge 25 | cap_drop: 26 | - MKNOD 27 | waweb: 28 | image: docker.whatsapp.biz/web:v${WA_API_VERSION:?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.37.1 docker-compose )} 29 | command: ["/opt/whatsapp/bin/wait_on_mysql.sh", "/opt/whatsapp/bin/launch_within_docker.sh"] 30 | ports: 31 | - "9090:443" 32 | volumes: 33 | - whatsappMedia:/usr/local/wamedia 34 | env_file: 35 | - db.env 36 | environment: 37 | WACORE_HOSTNAME: wacore 38 | # This is the version of the docker templates being used to run WhatsApp Business API 39 | WA_RUNNING_ENV_VERSION: v2.2.3 40 | ORCHESTRATION: DOCKER-COMPOSE 41 | depends_on: 42 | - "wacore" 43 | links: 44 | - wacore 45 | network_mode: bridge 46 | cap_drop: 47 | - MKNOD -------------------------------------------------------------------------------- /wordpress/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | wp_sample_id: 5 | image: wordpress 6 | environment: 7 | WORDPRESS_DB_HOST: db_host 8 | WORDPRESS_DB_USER: db_user 9 | WORDPRESS_DB_PASSWORD: db_password 10 | WORDPRESS_DB_NAME: db_name 11 | labels: 12 | - traefik.backend=wp_syafie_id 13 | - traefik.frontend.rule=Host:your_host.id #example: syafie.id 14 | - traefik.port=80 15 | depends_on: 16 | - db_host 17 | 18 | db_host: 19 | image: mysql:5.7 20 | environment: 21 | MYSQL_DATABASE: db_name 22 | MYSQL_USER: db_user 23 | MYSQL_PASSWORD: db_password 24 | MYSQL_RANDOM_ROOT_PASSWORD: '1' 25 | volumes: 26 | - $PWD/mysql-data:/var/lib/mysql 27 | labels: 28 | - traefik.enable=false 29 | 30 | networks: 31 | default: 32 | external: 33 | name: traefik_default #your custom network, you can see in "docker network ls" 34 | --------------------------------------------------------------------------------