2
0
mirror of https://github.com/frappe/frappe_docker.git synced 2024-11-10 07:11:00 +00:00

Merge pull request #200 from fermiumlabs/develop

Develop
This commit is contained in:
Davide Bortolami 2020-04-19 19:02:58 +01:00 committed by GitHub
commit 2da8f699d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 80 additions and 60 deletions

View File

@ -10,6 +10,10 @@
"workspaceFolder": "/workspace/development",
"shutdownAction": "stopCompose",
"extensions": [
"ms-python.python"
"ms-python.python",
"auchenberg.vscode-browser-preview",
"grapecity.gc-excelviewer",
"mtxr.sqltools",
"visualstudioexptteam.vscodeintellicode"
]
}

View File

@ -4,8 +4,7 @@
// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"ms-vscode-remote.remote-containers",
"ms-python.python"
"ms-vscode-remote.remote-containers"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [

View File

@ -32,10 +32,6 @@ VSCode should automatically inquiry you to install the required extensions, that
- through command line `code --install-extension ms-vscode-remote.remote-containers`
- clicking on the button at the following link: [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
- searching for extension `ms-vscode-remote.remote-containers`
- Install Python for VSCode
- through command line `code --install-extension ms-python.python`
- clicking on the button at the following link: [install](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
- searching for extension `ms-python.python`
After the extensions are installed, you can:
@ -85,7 +81,6 @@ sed -i '/redis/d' ./Procfile
### Create a new site with bench
Your installation already includes a site for [localhost](http://locahost:8000)
You can create a new site with the following command:
```shell
@ -98,6 +93,12 @@ for example:
bench new-site mysite.localhost
```
The same command can be run non-interactively as well:
```shell
bench new-site mysite.localhost --mariadb-root-password 123 --admin-password admin
```
The command will ask the MariaDB root password. The default root password is `123`.
This will create a new site and a `mysite.localhost` directory under `frappe-bench/sites`.
You may need to configure your system /etc/hosts if you're on Linux, Mac, or its Windows equivalent.
@ -107,8 +108,8 @@ You may need to configure your system /etc/hosts if you're on Linux, Mac, or its
To develop a new app, the last step will be setting the site into developer mode. Documentation is available at [this link](https://frappe.io/docs/user/en/guides/app-development/how-enable-developer-mode-in-frappe).
```shell
bench --site my.site set-config developer_mode 1
bench --site my.site clear-cache
bench --site mysite.localhost set-config developer_mode 1
bench --site mysite.localhost clear-cache
```
### Install an app
@ -119,9 +120,17 @@ You can check [VSCode container remote extension documentation](https://code.vis
```shell
bench get-app myapp https://github.com/myusername/myapp.git
bench --site my.site install-app myapp
bench --site mysite.localhost install-app myapp
```
For example, to install ERPNext (from the master branch):
```shell
bench get-app erpnext https://github.com/frappe/erpnext.git
bench --site mysite.localhost install-app erpnext
```
### Start Frappe without debugging
Execute following command from the `frappe-bench` directory.
@ -134,6 +143,63 @@ You can now login with user `Administrator` and the password you choose when cre
Your website will now be accessible on [on port 8000](http://locahost:8000)
Note: To start bench with debugger refer section for debugging.
### Start Frappe with Visual Studio Code Python Debugging
To enable Python debugging inside Visual Studio Code, you must first install the `ms-python.python` extension inside the container. This should have already happened automatically, but depending on your VSCode config, you can force it by:
- Click on the extension icon inside VSCode
- Search `ms-python.python`
- Click on `Install on Dev Container: Frappe Bench`
- Click on 'Reload'
We need to start bench separately through the VSCode debugger. For this reason, **instead** of running `bench start` you should run the following command inside the frappe-bench directory:
```shell
honcho start \
socketio \
watch \
schedule \
worker_short \
worker_long \
worker_default
```
This command starts all processes with the exception of Redis (which is already running in separate container) and the `web` process. The latter can can finally be started from the debugger tab of VSCode by clicking on the "play" button.
You can now login with user `Administrator` and the password you choose when creating the site, if you followed this guide's unattended install that password is going to be `admin`.
## Developing using the interactive console
You can launch a simple interactive shell console in the terminal with:
```shell
bench --site mysite.localhost console
```
More likely, you may want to launch VSCode interactive console based on Jupyter kernel.
Launch VSCode command palette (cmd+shift+p or ctrl+shift+p), run the command `Python: Select interpreter to start Jupyter server` and select `/workspace/development/frappe-bench/env/bin/python`.
The first step is installing and updating the required software. Usually the frappe framework may require an older version of Jupyter, while VSCode likes to move fast, this can [cause issues](https://github.com/jupyter/jupyter_console/issues/158). For this reason we need to run the following command.
```shell
/workspace/development/frappe-bench/env/bin/python -m pip install --upgrade jupyter ipykernel ipython
```
Then, run the commmand `Python: Show Python interactive window` from the VSCode command palette.
Replace `mysite.localhost` with your site and run the following code in a Jupyter cell:
```python
import frappe
frappe.init(site='mysite.localhost', sites_path='/workspace/development/frappe-bench/sites')
frappe.connect()
frappe.local.lang = frappe.db.get_default('lang')
frappe.db.connect()
```
The first command can take a few seconds to be executed, this is to be expected.
### Fixing MariaDB issues after rebuilding the container
The `bench new-site` command creates a user in MariaDB with container IP as host, for this reason after rebuilding the container there is a chance that you will not be able to access MariaDB correctly with the previous configuration
@ -179,52 +245,3 @@ And enter the interactive shell for the development container with the following
```shell
docker exec -e "TERM=xterm-256color" -w /workspace/development -it devcontainer_frappe_1 bash
```
### Start Frappe with Visual Studio Code Python Debugging
To enable Python debugging inside Visual Studio Code, you must first install the `ms-python.python` extension inside the container.
- Click on the extension icon inside VSCode
- Search `ms-python.python`
- Click on `Install on Dev Container: Frappe Bench`
- Click on 'Reload'
We need to start bench separately through the VSCode debugger. For this reason, **instead** of running `bench start` you should run the following command inside the frappe-bench directory:
```shell
honcho start \
socketio \
watch \
schedule \
worker_short \
worker_long \
worker_default
```
This command starts all processes with the exception of Redis (which is already running in separate container) and the `web` process. The latter can can finally be started from the debugger tab of VSCode by clicking on the "play" button.
You can now login with user `Administrator` and the password you choose when creating the site.
## Developing using the interactive console
You can launch a simple interactive shell console in the terminal with:
```shell
bench console
```
More likely, you may want to launch VSCoode interactive console based on Jupyter kernel.
Launch VSCode command palette (cmd+shift+p or ctrl+shift+p), run the command `Python: Select interpreter to start Jupyter server` and select `/workspace/development/frappe-bench/env/bin/python`.
Then, run the commmand `Python: Show Python interactive window` from the VSCode command palette.
Replace `my.site` with your site and run the following code in a Jupyter cell:
```python
import frappe
frappe.init(site='my.site', sites_path='/workspace/development/frappe-bench/sites')
frappe.connect()
frappe.local.lang = frappe.db.get_default('lang')
frappe.db.connect()
```