Skip to content

Commit df19a74

Browse files
committedMar 27, 2024
ci: Init Codespaces
1 parent 0f93ccc commit df19a74

File tree

5 files changed

+202
-0
lines changed

5 files changed

+202
-0
lines changed
 

‎.devcontainer/devcontainer.json

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "Frappe Bench",
3+
"forwardPorts": [8000, 9000, 6787],
4+
"remoteUser": "frappe",
5+
"settings": {
6+
"terminal.integrated.defaultProfile.linux": "bash",
7+
"debug.node.autoAttach": "disabled"
8+
},
9+
"dockerComposeFile": "./docker-compose.yml",
10+
"service": "frappe",
11+
"workspaceFolder": "/workspace/frappe-bench",
12+
"postCreateCommand": "bash /workspace/scripts/init.sh",
13+
"shutdownAction": "stopCompose",
14+
"extensions": [
15+
"ms-python.python",
16+
"ms-vscode.live-server",
17+
"grapecity.gc-excelviewer",
18+
"mtxr.sqltools",
19+
"visualstudioexptteam.vscodeintellicode"
20+
]
21+
}

‎.devcontainer/docker-compose.yml

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
version: "3.7"
2+
services:
3+
mariadb:
4+
image: mariadb:10.6
5+
command:
6+
- --character-set-server=utf8mb4
7+
- --collation-server=utf8mb4_unicode_ci
8+
- --skip-character-set-client-handshake
9+
- --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6
10+
environment:
11+
MYSQL_ROOT_PASSWORD: 123
12+
volumes:
13+
- mariadb-data:/var/lib/mysql
14+
15+
# Enable PostgreSQL only if you use it, see development/README.md for more information.
16+
# postgresql:
17+
# image: postgres:11.8
18+
# environment:
19+
# POSTGRES_PASSWORD: 123
20+
# volumes:
21+
# - postgresql-data:/var/lib/postgresql/data
22+
23+
redis-cache:
24+
image: redis:alpine
25+
26+
redis-queue:
27+
image: redis:alpine
28+
29+
redis-socketio:
30+
image: redis:alpine
31+
32+
frappe:
33+
image: frappe/bench:latest
34+
command: sleep infinity
35+
environment:
36+
- SHELL=/bin/bash
37+
volumes:
38+
- ..:/workspace:cached
39+
working_dir: /workspace/frappe-bench
40+
ports:
41+
- 8000-8005:8000-8005
42+
- 9000-9005:9000-9005
43+
44+
volumes:
45+
mariadb-data:
46+
postgresql-data:

‎.vscode/launch.json

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Bench Web",
9+
"type": "python",
10+
"request": "launch",
11+
"program": "${workspaceFolder}/frappe-bench/apps/frappe/frappe/utils/bench_helper.py",
12+
"args": [
13+
"frappe", "serve", "--port", "8000", "--noreload", "--nothreading"
14+
],
15+
"cwd": "${workspaceFolder}/frappe-bench/sites",
16+
"env": {
17+
"DEV_SERVER": "1"
18+
}
19+
},
20+
{
21+
"name": "Bench Default Worker",
22+
"type": "python",
23+
"request": "launch",
24+
"program": "${workspaceFolder}/frappe-bench/apps/frappe/frappe/utils/bench_helper.py",
25+
"args": [
26+
"frappe", "worker", "--queue", "default"
27+
],
28+
"cwd": "${workspaceFolder}/frappe-bench/sites",
29+
"env": {
30+
"DEV_SERVER": "1"
31+
}
32+
},
33+
{
34+
"name": "Bench Short Worker",
35+
"type": "python",
36+
"request": "launch",
37+
"program": "${workspaceFolder}/frappe-bench/apps/frappe/frappe/utils/bench_helper.py",
38+
"args": [
39+
"frappe", "worker", "--queue", "short"
40+
],
41+
"cwd": "${workspaceFolder}/frappe-bench/sites",
42+
"env": {
43+
"DEV_SERVER": "1"
44+
}
45+
},
46+
{
47+
"name": "Bench Long Worker",
48+
"type": "python",
49+
"request": "launch",
50+
"program": "${workspaceFolder}/frappe-bench/apps/frappe/frappe/utils/bench_helper.py",
51+
"args": [
52+
"frappe", "worker", "--queue", "long"
53+
],
54+
"cwd": "${workspaceFolder}/frappe-bench/sites",
55+
"env": {
56+
"DEV_SERVER": "1"
57+
}
58+
},
59+
{
60+
"name": "Honcho SocketIO Watch Schedule Worker",
61+
"type": "python",
62+
"request": "launch",
63+
"program": "/home/frappe/.local/bin/honcho",
64+
"cwd": "${workspaceFolder}/frappe-bench",
65+
"console": "internalConsole",
66+
"args": [
67+
"start", "socketio", "watch", "schedule", "worker_short", "worker_long", "worker_default"
68+
]
69+
}
70+
]
71+
}

‎.vscode/settings.json

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"python.defaultInterpreterPath": "frappe-bench/env/bin/python",
3+
"debug.node.autoAttach": "disabled",
4+
"sqltools.connections": [
5+
{
6+
"mysqlOptions": {
7+
"authProtocol": "default"
8+
},
9+
"previewLimit": 50,
10+
"server": "mariadb",
11+
"port": 3306,
12+
"driver": "MariaDB",
13+
"name": "MariaDB",
14+
"username": "root",
15+
"password": "123"
16+
}
17+
]
18+
}

‎scripts/init.sh

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!bin/bash
2+
3+
set -e
4+
5+
if [[ -f "/workspaces/frappe_codespace/frappe-bench/apps/frappe" ]]
6+
then
7+
echo "Bench already exists, skipping init"
8+
exit 0
9+
fi
10+
11+
rm -rf /workspaces/frappe_codespace/.git
12+
13+
source /home/frappe/.nvm/nvm.sh
14+
nvm alias default 18
15+
nvm use 18
16+
17+
echo "nvm use 18" >> ~/.bashrc
18+
cd /workspace
19+
20+
bench init \
21+
--ignore-exist \
22+
--skip-redis-config-generation \
23+
frappe-bench
24+
25+
cd frappe-bench
26+
27+
# Use containers instead of localhost
28+
bench set-mariadb-host mariadb
29+
bench set-redis-cache-host redis-cache:6379
30+
bench set-redis-queue-host redis-queue:6379
31+
bench set-redis-socketio-host redis-socketio:6379
32+
33+
# Remove redis from Procfile
34+
sed -i '/redis/d' ./Procfile
35+
36+
37+
bench new-site dev.localhost \
38+
--mariadb-root-password 123 \
39+
--admin-password admin \
40+
--no-mariadb-socket
41+
42+
bench --site dev.localhost set-config developer_mode 1
43+
bench --site dev.localhost clear-cache
44+
bench use dev.localhost
45+
bench get-app crm
46+
bench --site dev.localhost install-app crm

0 commit comments

Comments
 (0)
Please sign in to comment.