2
0
mirror of https://github.com/frappe/frappe_docker.git synced 2024-12-23 10:38:58 +00:00
Docker images for production and development setups of the Frappe framework and ERPNext
Go to file
2017-10-09 09:38:54 +05:30
conf/mariadb-conf.d git diff bb01cc8277 a32c9230dd726399c59f5849d7e0a25b1e3a281a | git apply --reject --whitespace=fix 2017-10-02 09:32:03 +05:30
frappe-bench Added bench init , start and python tests to curl the site 2017-10-02 09:48:47 +05:30
redis-conf git diff bb01cc8277 a32c9230dd726399c59f5849d7e0a25b1e3a281a | git apply --reject --whitespace=fix 2017-10-02 09:32:03 +05:30
.travis.yml fixing travis build error 2017-10-09 09:23:42 +05:30
dbench added init option 2017-10-09 08:45:52 +05:30
docker-compose.yml added file-watcher-port and socketio-port + Readme changes 2017-10-02 09:48:51 +05:30
Dockerfile Update Dockerfile 2017-10-06 13:55:55 +05:30
LICENSE.md Rename LICENSE to LICENSE.md 2017-10-02 09:48:51 +05:30
README.md changed travis badge 2017-10-09 09:38:54 +05:30
test.py global r 2017-10-02 09:48:51 +05:30

frappe_docker

Build Status

  • Docker is an open source project to pack, ship and run any Linux application in a lighter weight, faster container than a traditional virtual machine.

  • Docker makes it much easier to deploy frappe on your servers.

  • This container uses bench to install frappe.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

Docker

Docker Compose

Container Configuration

ports:

ports:
      - "3307:3307"   mariadb-port
      - "8000:8000"   webserver-port
      - "11000:11000" redis-cache
      - "12000:12000" redis-queue
      - "13000:13000" redis-socketio
      - "9000:9000"   socketio-port
      - "6787:6787"   file-watcher-port

Expose port 3307 inside the container on port 3307 on ALL local host interfaces. In order to bind to only one interface, you may specify the host's IP address as ([<host_interface>:[host_port]])|(<host_port>):<container_port>[/udp] as defined in the docker port binding documentation. The port 3307 of the mariadb container and port 8000 of the frappe container is exposed to the host machine and other containers.

volumes:

volumes:
     - ./frappe-bench:/home/frappe/frappe-bench
     - ./conf/mariadb-conf.d:/etc/mysql/conf.d
     - ./redis-conf/redis_socketio.conf:/etc/conf.d/redis.conf
     - ./redis-conf/redis_queue.conf:/etc/conf.d/redis.conf
     - ./redis-conf/redis_cache.conf:/etc/conf.d/redis.conf

Exposes a directory inside the host to the container.

links:
      - redis-cache
      - redis-queue
      - redis-socketio
      - mariadb

Links allow you to define extra aliases by which a service is reachable from another service.

depends_on:

depends_on:
      - mariadb
      - redis-cache
      - redis-queue
      - redis-socketio

Express dependency between services, which has two effects:

  1. docker-compose up will start services in dependency order. In the following example, mariadb and redis will be started before frappe.

  2. docker-compose up SERVICE will automatically include SERVICEs dependencies. In the following example, docker-compose up docker_frappe will also create and start mariadb and redis.

Installation

1. Installation Pre-requisites

  • Install Docker Community Edition

  • Install Docker Compose (only for Linux users). Docker for Mac, Docker for Windows, and Docker Toolbox include Docker Compose

2. Build the container and install bench

  • Clone this repo and change your working directory to frappe_docker

      git clone --depth 1 https://github.com/frappe/frappe_docker.git
      cd frappe_docker
    
  • Build the container and install bench inside the container.

    1.Build the 5 linked containers frappe, mariadb, redis-cache, redis-queue and redis-socketio using this command. Make sure your current working directory is frappe_docker which contains the docker-compose.yml and Dockerfile. It creates a user, frappe inside the frappe container, whose working directory is /home/frappe. It also clones the bench-repo from here

      docker-compose up -d
    

    Note: Please do not remove the bench-repo directory the above commands will create

Basic Usage

  1. Starting docker containers

    This command can be used to start containers

     docker-compose start
    
  2. Accessing the frappe container via CLI

     docker exec -i -u root frappe bash -c "cd /home/frappe && chown -R frappe:frappe ./*"
     docker exec -it frappe bash
    
  3. Create a new bench

    The init command will create a bench directory with frappe framework installed. It will be setup for periodic backups and auto updates once a day.

     cd .. && bench init frappe-bench --skip-bench-mkdir --skip-redis-config-generation && cd frappe-bench
     mv Procfile_docker Procfile && mv sites/common_site_config_docker.json sites/common_site_config.json
    
  4. Set the db host for bench (points bench to the mariadb container) since the 3 containers are linked

     bench set-mariadb-host mariadb
    
  5. Add a site (make sure your current path is /home/frappe/frappe-bench)

    Frappe apps are run by frappe sites and you will have to create at least one site. The new-site command allows you to do that.

     bench new-site site1.local
    
  6. Add apps (make sure your current path is /home/frappe/frappe-bench)

    The get-app command gets remote frappe apps from a remote git repository and installs them. Example: erpnext

     bench get-app erpnext https://github.com/frappe/erpnext
    
  7. Install apps (make sure your current path is /home/frappe/frappe-bench)

    To install an app on your new site, use the bench install-app command.

     bench --site site1.local install-app erpnext
    
  8. Start bench (make sure your current path is /home/frappe/frappe-bench)

    To start using the bench, use the bench start command

     bench start
    
  9. Exiting the frappe container and stopping all the containers gracefully.

     exit
     docker-compose stop
    
  10. Removing docker containers

    docker-compose rm
    
  11. Removing dangling volumes

    The volume frappe on your local machine is shared by the host(your local machine) and the frappe container. Please do not delete this volume from your local machine. Any changes made in this directory will reflect on both the container and the host. The below command specifies how to remain dangling volumes which may be taking up unecessary space on your host.

    docker volume rm $(docker volume ls -f dangling=true -q)
    

To login to Frappe / ERPNext, open your browser and go to [your-external-ip]:8000, probably localhost:8000

The default username is "Administrator" and password is what you set when you created the new site.

Built With

Contributing

Feel free to contribute to this project and make the container better

License

This project is licensed under the MIT License - see the LICENSE.md file for details