mirror of
https://github.com/Quad4-Software/Reticulum-Go
synced 2026-08-29 23:48:44 -04:00
145 lines
4.1 KiB
YAML
145 lines
4.1 KiB
YAML
version: '3'
|
|
|
|
tasks:
|
|
"docker:build":
|
|
desc: Build Docker image (runtime image)
|
|
vars:
|
|
IMAGE_NAME: reticulum-go
|
|
IMAGE_TAG: latest
|
|
cmds:
|
|
- docker build -f docker/Dockerfile -t {{.IMAGE_NAME}}:{{.IMAGE_TAG}} .
|
|
|
|
"docker:build:speedtest":
|
|
desc: Build public VPS speedtest daemon image
|
|
vars:
|
|
IMAGE_NAME: reticulum-go-speedtest
|
|
IMAGE_TAG: latest
|
|
cmds:
|
|
- docker build -f docker/Dockerfile.speedtest -t {{.IMAGE_NAME}}:{{.IMAGE_TAG}} .
|
|
|
|
"docker:run:speedtest":
|
|
desc: Run speedtest daemon (publish TCP 4242)
|
|
vars:
|
|
IMAGE_NAME: reticulum-go-speedtest
|
|
IMAGE_TAG: latest
|
|
CONTAINER_NAME: reticulum-go-speedtest
|
|
SPEEDTEST_IFACE: all
|
|
SPEEDTEST_PORT: 4242
|
|
cmds:
|
|
- |
|
|
docker run --rm -it \
|
|
--name {{.CONTAINER_NAME}} \
|
|
-p {{.SPEEDTEST_PORT}}:{{.SPEEDTEST_PORT}} \
|
|
-e SPEEDTEST_IFACE={{.SPEEDTEST_IFACE}} \
|
|
-e SPEEDTEST_PORT={{.SPEEDTEST_PORT}} \
|
|
-v reticulum-go-speedtest:/data \
|
|
{{.IMAGE_NAME}}:{{.IMAGE_TAG}}
|
|
|
|
"docker:build:tag":
|
|
desc: Build Docker image with custom tag (use IMAGE_TAG env var)
|
|
vars:
|
|
IMAGE_NAME: reticulum-go
|
|
IMAGE_TAG: ${IMAGE_TAG:-latest}
|
|
cmds:
|
|
- docker build -f docker/Dockerfile -t {{.IMAGE_NAME}}:{{.IMAGE_TAG}} .
|
|
|
|
"docker:build:build":
|
|
desc: Build Docker image for building binaries only
|
|
vars:
|
|
IMAGE_NAME: reticulum-go-build
|
|
IMAGE_TAG: latest
|
|
cmds:
|
|
- docker build -f docker/Dockerfile.build -t {{.IMAGE_NAME}}:{{.IMAGE_TAG}} .
|
|
|
|
"docker:run":
|
|
desc: Run Docker container (runtime image)
|
|
vars:
|
|
IMAGE_NAME: reticulum-go
|
|
IMAGE_TAG: latest
|
|
CONTAINER_NAME: reticulum-go
|
|
cmds:
|
|
- |
|
|
docker run --rm -it \
|
|
--name {{.CONTAINER_NAME}} \
|
|
-p 4242:4242 \
|
|
{{.IMAGE_NAME}}:{{.IMAGE_TAG}}
|
|
|
|
"docker:run:detached":
|
|
desc: Run Docker container in detached mode
|
|
vars:
|
|
IMAGE_NAME: reticulum-go
|
|
IMAGE_TAG: latest
|
|
CONTAINER_NAME: reticulum-go
|
|
cmds:
|
|
- |
|
|
docker run -d \
|
|
--name {{.CONTAINER_NAME}} \
|
|
-p 4242:4242 \
|
|
{{.IMAGE_NAME}}:{{.IMAGE_TAG}}
|
|
|
|
"docker:stop":
|
|
desc: Stop running Docker container
|
|
vars:
|
|
CONTAINER_NAME: reticulum-go
|
|
cmds:
|
|
- docker stop {{.CONTAINER_NAME}} || true
|
|
- docker rm {{.CONTAINER_NAME}} || true
|
|
|
|
"docker:extract":
|
|
desc: Extract binary from build container
|
|
vars:
|
|
IMAGE_NAME: reticulum-go-build
|
|
IMAGE_TAG: latest
|
|
BINARY_NAME: reticulum-go
|
|
cmds:
|
|
- |
|
|
CONTAINER_ID=$(docker create {{.IMAGE_NAME}}:{{.IMAGE_TAG}})
|
|
docker cp $CONTAINER_ID:/dist/{{.BINARY_NAME}} {{.BUILD_DIR}}/{{.BINARY_NAME}}
|
|
docker rm $CONTAINER_ID
|
|
echo "Binary extracted to {{.BUILD_DIR}}/{{.BINARY_NAME}}"
|
|
|
|
"docker:buildx:setup":
|
|
desc: Setup Docker buildx for multi-platform builds
|
|
cmds:
|
|
- docker buildx create --name reticulum-builder --use || docker buildx use reticulum-builder
|
|
- docker buildx inspect --bootstrap
|
|
|
|
"docker:buildx:build":
|
|
desc: Build multi-platform Docker image
|
|
vars:
|
|
IMAGE_NAME: reticulum-go
|
|
IMAGE_TAG: latest
|
|
PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7,linux/386
|
|
cmds:
|
|
- |
|
|
docker buildx build \
|
|
--platform {{.PLATFORMS}} \
|
|
-f docker/Dockerfile \
|
|
-t {{.IMAGE_NAME}}:{{.IMAGE_TAG}} \
|
|
--load \
|
|
.
|
|
|
|
"docker:buildx:build:push":
|
|
desc: Build and push multi-platform Docker image
|
|
vars:
|
|
IMAGE_NAME: reticulum-go
|
|
IMAGE_TAG: latest
|
|
PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7,linux/386
|
|
requires:
|
|
vars: [DOCKER_REGISTRY]
|
|
cmds:
|
|
- |
|
|
docker buildx build \
|
|
--platform {{.PLATFORMS}} \
|
|
-f docker/Dockerfile \
|
|
-t ${DOCKER_REGISTRY}/{{.IMAGE_NAME}}:{{.IMAGE_TAG}} \
|
|
--push \
|
|
.
|
|
|
|
"docker:clean":
|
|
desc: Clean Docker images and containers
|
|
cmds:
|
|
- docker stop reticulum-go || true
|
|
- docker rm reticulum-go || true
|
|
- docker rmi reticulum-go:latest || true
|
|
- docker rmi reticulum-go-build:latest || true
|