diff --git a/.travis.yml b/.travis.yml index f1192e80c..4398a1386 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - ./build_helpers/install_ta-lib.sh - export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH - pip install --upgrade flake8 coveralls pytest-random-order pytest-asyncio mypy -- pip install -r requirements.txt +- pip install -r requirements-dev.txt - pip install -e . jobs: include: diff --git a/Dockerfile.develop b/Dockerfile.develop new file mode 100644 index 000000000..8f6871c55 --- /dev/null +++ b/Dockerfile.develop @@ -0,0 +1,9 @@ +FROM freqtradeorg/freqtrade:develop + +# Install dependencies +COPY requirements-dev.txt /freqtrade/ +RUN pip install numpy --no-cache-dir \ + && pip install -r requirements-dev.txt --no-cache-dir + +# Empty the ENTRYPOINT to allow all commands +ENTRYPOINT [] diff --git a/docs/installation.md b/docs/installation.md index 18406e555..3d0ee9468 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -134,6 +134,12 @@ cd freqtrade docker build -t freqtrade . ``` +If you are developing using Docker, use `Dockerfile.develop` to build a dev Docker image, which will also set up develop dependencies: + +```bash +docker build -f ./Dockerfile.develop -t freqtrade-dev . +``` + For security reasons, your configuration file will not be included in the image, you will need to bind mount it. It is also advised to bind mount an SQLite database file (see the "5. Run a restartable docker image" section) to keep it between updates. ### 3. Verify the Docker image diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 000000000..4a7416ca1 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,8 @@ +# Include all requirements to run the bot. +-r requirements.txt + +flake8==3.6.0 +pytest==4.0.2 +pytest-mock==1.10.0 +pytest-asyncio==0.9.0 +pytest-cov==2.6.0 diff --git a/requirements.txt b/requirements.txt index eb2ed5736..2fdf0d234 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,19 +13,12 @@ scipy==1.1.0 jsonschema==2.6.0 numpy==1.15.4 TA-Lib==0.4.17 -pytest==4.0.2 -pytest-mock==1.10.0 -pytest-asyncio==0.9.0 -pytest-cov==2.6.0 tabulate==0.8.2 coinmarketcap==5.0.3 # Required for hyperopt scikit-optimize==0.5.2 -# Required for plotting data -#plotly==3.1.1 - # find first, C search in arrays py_find_1st==1.1.3 diff --git a/setup.sh b/setup.sh index 1bb2ba397..b8e99e679 100755 --- a/setup.sh +++ b/setup.sh @@ -28,6 +28,16 @@ function updateenv () { pip3 install --quiet --upgrade pip pip3 install --quiet -r requirements.txt --upgrade pip3 install --quiet -r requirements.txt + + read -p "Do you want to install dependencies for dev [Y/N]? " + if [[ $REPLY =~ ^[Yy]$ ]] + then + pip3 install --quiet -r requirements-dev.txt --upgrade + pip3 install --quiet -r requirements-dev.txt + else + echo "Dev dependencies ignored." + fi + pip3 install --quiet -e . echo "pip3 install completed" echo