Basic client and server apps. #41

Open
pztrn wants to merge 32 commits from 2-client-basics into feature/1-basics
9 changed files with 128 additions and 17 deletions
Showing only changes of commit 466b58b41d - Show all commits

25
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,25 @@
{
// Используйте IntelliSense, чтобы узнать о возможных атрибутах.
// Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов.
// Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "bunkerd docker debug",
"type": "go",
"debugAdapter": "dlv-dap",
"request": "attach",
"mode": "remote",
"port": 54401,
"host": "127.0.0.1",
"stopOnEntry": true,
"substitutePath": [
{
"from": "${workspaceFolder}",
"to": "bunker"
}
],
"preLaunchTask": "Run bunkerd debug build"
}
]
}

18
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,18 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Run bunkerd debug build",
"type": "shell",
"command": "task server:localdev:bunkerd:build-debug && task server:localdev:bunkerd:restart-debug",
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
// Do not open terminal every time debug is launched.
"reveal": "silent"
}
}
]
}

View File

@ -13,6 +13,4 @@ RUN apt-get update && \
COPY --from=build /bunkerd/_build/bunkerd /bunkerd
COPY --from=build /usr/local/bin/dlv /dlv
COPY server/entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
ENTRYPOINT ["/bunkerd"]

16
server/Dockerfile.debug Normal file
View File

@ -0,0 +1,16 @@
FROM code.pztrn.name/containers/go-toolbox:v8 AS build
WORKDIR /bunkerd
COPY . /bunkerd
RUN --mount=type=cache,target="/home/container/go" task server:cmd:bunkerd:build --force
FROM debian:13-slim
RUN apt-get update && \
apt-get install -y ca-certificates iputils-ping coreutils && \
rm -rf /var/lib/apt/* /var/cache/apt/*
COPY --from=build /bunkerd/_build/bunkerd /bunkerd
COPY --from=build /usr/local/bin/dlv /dlv
ENTRYPOINT ["/dlv", "--listen=:4000", "--headless=true", "--log=true", "--accept-multiclient", "--api-version=2", "exec", "/bunkerd"]

View File

@ -1,8 +0,0 @@
#!/bin/sh
echo "* Starting bunkerd..."
if [ -n "${BUNKERD_DEBUG}" ]; then
exec /dlv --listen=:4000 --headless=true --log=true --accept-multiclient --api-version=2 exec /bunkerd --continue
else
exec /bunkerd
fi

View File

@ -10,10 +10,7 @@ import (
"time"
)
var (
errApplication = errors.New("application")
errNoMainWindow = errors.New("no main window service registered")
)
var errApplication = errors.New("application")
// Application is a lifecycle controlling structure for application.
type Application struct {

View File

@ -8,36 +8,72 @@ tasks:
cmds:
- docker compose -p bunkerd -f docker-compose.yaml build
build-debug:
desc: "Builds bunkerd's debug build container."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd-debug -f docker-compose.debug.yaml build
down:
desc: "Deletes all bunkerd's data (down)."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd -f docker-compose.yaml down --volumes
down-debug:
desc: "Deletes all bunkerd's debug build data (down)."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd-debug -f docker-compose.debug.yaml down --volumes
logs:
desc: "Show bunkerd logs."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd -f docker-compose.yaml logs -f
logs-debug:
desc: "Show bunkerd debug build logs."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd-debug -f docker-compose.debug.yaml logs -f
restart:
desc: "Restart bunkerd."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd -f docker-compose.yaml restart
restart-debug:
desc: "Restart bunkerd debug build."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd-debug -f docker-compose.debug.yaml restart
start:
desc: "Start bunkerd."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd -f docker-compose.yaml start
start-debug:
desc: "Start bunkerd debug build."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd -f docker-compose.yaml start
stop:
desc: "Stop bunkerd without deleting it's data."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd -f docker-compose.yaml stop
stop-debug:
desc: "Stop bunkerd debug build without deleting it's data."
dir: "./server/localdevzone/bunkerd"
cmds:
- docker compose -p bunkerd-debug -f docker-compose.debug.yaml stop
up:
desc: "Start bunkerd (up -d)."
dir: "./server/localdevzone/bunkerd"
@ -45,3 +81,11 @@ tasks:
- task: :common:network-up
- task: build
- docker compose -p bunkerd -f docker-compose.yaml up -d
up-debug:
desc: "Start bunkerd debug build (up -d)."
dir: "./server/localdevzone/bunkerd"
cmds:
- task: :common:network-up
- task: build
- docker compose -p bunkerd-debug -f docker-compose.debug.yaml up -d

View File

@ -0,0 +1,23 @@
---
services:
bunkerd-debug:
container_name: "bunkerd-debug"
build:
context: ../../../
dockerfile: server/Dockerfile.debug
ports:
- "54400:54400"
- "54401:4000"
volumes:
- "./data:/data"
networks:
bunkerd:
ipv4_address: 247.247.0.3
environment:
BUNKERD_DATABASE_DSN: " "
cap_add:
- SYS_PTRACE
networks:
bunkerd:
external: true

View File

@ -7,14 +7,12 @@ services:
dockerfile: server/Dockerfile
ports:
- "53400:53400"
- "54000:4000"
volumes:
- "./data:/data"
networks:
bunkerd:
ipv4_address: 247.247.0.2
environment:
BUNKERD_DEBUG: "true"
BUNKERD_DATABASE_DSN: " "
cap_add:
- SYS_PTRACE