Skip to content

Instantly share code, notes, and snippets.

@kuyseng
Last active August 14, 2023 02:30
Show Gist options
  • Save kuyseng/ebbb8eb8862136cfae9fd3926e7acd4c to your computer and use it in GitHub Desktop.
Save kuyseng/ebbb8eb8862136cfae9fd3926e7acd4c to your computer and use it in GitHub Desktop.
create_docker_dev_for_projects
#!/bin/bash
# curl -s https://gist.githubusercontent.com/kuyseng/ebbb8eb8862136cfae9fd3926e7acd4c/raw/create-yoolk-dev-env.sh | bash
cat > compose-dev.yaml <<- EOM
version: '3.8'
services:
app:
image: kuyseng/ruby:v2.3.1
init: true
entrypoint: 'sleep infinite'
command: ''
volumes:
- yoolk-bundle-data:/usr/local/rvm/gems
- ~/.ssh/id_rsa:/root/.ssh/id_rsa:ro
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
depends_on:
- db
- mongo
- elasticsearch
- redis
environment:
MYSQL2_DATABASE_DEVELOPMENT: yoolk_core_api_development
MYSQL2_USERNAME_DEVELOPMENT: root
MYSQL2_PASSWORD_DEVELOPMENT: mysql123
MYSQL2_DATABASE_TEST: yoolk_core_api_test
MYSQL2_USERNAME_TEST: root
MYSQL2_PASSWORD_TEST: mysql123
MYSQL2_HOST_DEVELOPMENT: db
MONGOID_DATABASE_DEVELOPMENT: yoolk_statistics_api_development
MONGOID_USERNAME_DEVELOPMENT: root
MONGOID_PASSWORD_DEVELOPMENT: mongo123
MONGOID_HOSTS_DEVELOPMENT: mongo:27017
REDIS_URL: redis://redis:6379/12
ELASTIC_SEARCH_URL: http://elasticsearch:9200
db:
image: mariadb:10.2.16
restart: unless-stopped
mem_limit: 350m
volumes:
- yoolk-mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: mysql123
mongo:
image: mongo:3.7.9
mem_limit: 100m
volumes:
- yoolk-mongo-data:/data/db
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: mongo123
redis:
image: redis
mem_limit: 10m
volumes:
- yoolk-redis-data:/data
elasticsearch:
image: elasticsearch:7.10.1
volumes:
- yoolk-elasticsearch-data:/usr/share/elasticsearch/data
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
yoolk-mysql-data:
external: true
yoolk-mongo-data:
external: true
yoolk-redis-data:
external: true
yoolk-elasticsearch-data:
external: true
yoolk-bundle-data:
external: true
EOM
# create volumes
for v in mysql mongo redis elasticsearch bundle; do
docker volume create yoolk-$v-data;
done
docker dev create --name contact.page --open "$PWD"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment