Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ env:
# used to sync image to mirror registry
DOCKER_MIRROR_REGISTRY_USERNAME: ${{ vars.DOCKER_MIRROR_REGISTRY_USERNAME }}
DOCKER_MIRROR_REGISTRY_PASSWORD: ${{ secrets.DOCKER_MIRROR_REGISTRY_PASSWORD }}
CI_PROJECT_NAME: ${{ vars.CI_PROJECT_NAME || 'LabNow/lab-dev' }}

jobs:
## Clash
Expand Down Expand Up @@ -55,7 +56,7 @@ jobs:
source ./tool.sh && build_image keycloak latest docker_keycloak/Dockerfile && push_image

## DevHub
qpod_dev-hub:
job-dev-hub:
name: 'dev-hub'
runs-on: ubuntu-latest
steps:
Expand All @@ -68,7 +69,7 @@ jobs:
push_image

## OpenResty as gateway
qpod_openresty:
job-openresty:
name: 'openresty'
runs-on: ubuntu-latest
steps:
Expand All @@ -77,7 +78,7 @@ jobs:
source ./tool.sh && build_image openresty latest docker_openresty/Dockerfile && push_image

## OpenResty as gateway
qpod_searxng:
job-searxng:
name: 'searxng'
runs-on: ubuntu-latest
steps:
Expand All @@ -87,7 +88,7 @@ jobs:


## DevBox - base
qpod_base-dev:
job-base-dev:
name: 'developer,base-dev'
runs-on: ubuntu-latest
steps:
Expand All @@ -101,7 +102,7 @@ jobs:
alias_image base-dev latest developer latest && push_image dev

## DevBox - data science stack
qpod_data-science-dev:
job-data-science-dev:
name: 'data-science-dev'
runs-on: ubuntu-latest
steps:
Expand All @@ -116,7 +117,7 @@ jobs:
push_image

## DevBox - full stack
qpod_full-stack-dev:
job-full-stack-dev:
name: 'full-stack-dev'
runs-on: ubuntu-latest
steps:
Expand All @@ -131,7 +132,7 @@ jobs:
push_image

## DevBox - cuda
qpod_cuda-dev:
job-cuda-dev:
name: 'full-cuda,cuda-dev'
runs-on: ubuntu-latest
steps:
Expand All @@ -147,7 +148,7 @@ jobs:

## Sync all images in this build (listed by "names") to mirror registry.
sync_images:
needs: ["qpod_cuda-dev", "qpod_data-science-dev", "qpod_full-stack-dev"]
needs: ["job-cuda-dev", "job-data-science-dev", "job-full-stack-dev"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -158,5 +159,5 @@ jobs:
source ./tool.sh
printf '%s' "$AUTH_FILE_CONTENT" > .github/workflows/auth.json && ls -alh ./.github/workflows
printenv | grep -v 'PATH' > /tmp/docker.env && echo "REGISTRY_URL=${REGISTRY_DST}" >> /tmp/docker.env
docker run --rm --env-file /tmp/docker.env -v $(pwd):/tmp -w /tmp ${IMG_PREFIX_DST:-qpod}/docker-kit \
docker run --rm --env-file /tmp/docker.env -v $(pwd):/tmp -w /tmp ${IMG_PREFIX_DST:-labnow}/docker-kit \
python /opt/utils/image-syncer/run_jobs.py --auth-file=/tmp/.github/workflows/auth.json
3 changes: 2 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
BSD 3-Clause License

Copyright (c) 2024, QPod
Copyright (c) 2018, QPod
Copyright (c) 2024, LabNow

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Expand Down
36 changes: 15 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,40 @@
# QPod Lab Dev - Docker Image Stack
# LabNow Container Image Stack - Lab Dev

[![License](https://img.shields.io/badge/License-BSD%203--Clause-green.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/QPod/lab-dev/build-docker.yml?branch=main)](https://github.com/QPod/lab-dev/actions/workflows/build-docker.yml)
[![Recent Code Update](https://img.shields.io/github/last-commit/QPod/lab-dev.svg)](https://github.com/QPod/lab-dev/stargazers)
[![Visit Images on DockerHub](https://img.shields.io/badge/DockerHub-Images-green)](https://hub.docker.com/u/qpod)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/LabNow-ai/lab-dev/build-docker.yml?branch=main)](https://github.com/LabNow-ai/lab-dev/actions/workflows/build-docker.yml)
[![Recent Code Update](https://img.shields.io/github/last-commit/LabNow-ai/lab-dev.svg)](https://github.com/LabNow-ai/lab-dev/stargazers)
[![Visit Images on DockerHub](https://img.shields.io/badge/DockerHub-Images-green)](https://hub.docker.com/u/labnow)

Please generously STAR★ our project or donate to us! [![GitHub Starts](https://img.shields.io/github/stars/QPod/lab-dev.svg?label=Stars&style=social)](https://github.com/QPod/lab-dev/stargazers)
Please generously STAR★ our project or donate to us! [![GitHub Starts](https://img.shields.io/github/stars/LabNow-ai/lab-dev.svg?label=Stars&style=social)](https://github.com/LabNow-ai/lab-dev/stargazers)
[![Donate-PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/haobibo)
[![Donate-AliPay](https://img.shields.io/badge/Donate-Alipay-blue.svg)](https://raw.githubusercontent.com/wiki/haobibo/resources/img/Donate-AliPay.png)
[![Donate-WeChat](https://img.shields.io/badge/Donate-WeChat-green.svg)](https://raw.githubusercontent.com/wiki/haobibo/resources/img/Donate-WeChat.png)

Discussion and contributions are welcome:
[![Join the Discord Chat](https://img.shields.io/badge/Discuss_on-Discord-green)](https://discord.gg/kHUzgQxgbJ)
[![Open an Issue on GitHub](https://img.shields.io/github/issues/QPod/lab-dev)](https://github.com/QPod/lab-dev/issues)
[![Open an Issue on GitHub](https://img.shields.io/github/issues/LabNow-ai/lab-dev)](https://github.com/LabNow-ai/lab-dev/issues)

## Lab Dev - Building Blocks and IDEs for Application Development

`QPod lab-dev` ( [DockerHub](https://hub.docker.com/u/qpod) | [GitHub](https://github.com/QPod/lab-dev) ) provides Building Blocks and IDEs for Application Development.
`LabNow lab-dev` ( [DockerHub](https://hub.docker.com/u/labnow) | [GitHub](https://github.com/LabNow-ai/lab-dev) ) provides Building Blocks and IDEs for Application Development.

## Documentation & Tutorial

[Wiki & Document](https://qpod.github.io/) | [中文使用指引(含中国网络镜像)](https://qpod.github.io/docs/intro-cn)

## Screenshot and Arch Diagram

![Screenshot of QPod](https://raw.githubusercontent.com/wiki/QPod/qpod-hub/img/QPod-screenshot.webp "Screenshot of QPod")

![Arch Diagram for QPod DevBox](https://raw.githubusercontent.com/wiki/QPod/docker-images/img/QPod-arch.svg "Arch Diagram for QPod DevBox")
[Wiki & Document](https://labnow.ai/) | [中文使用指引(含中国网络镜像)](https://labnow-ai.feishu.cn/wiki/wikcn0sBhMtb1KNRSUTettxWstc)

## Develop and Debug

```bash
IMG="qpod/developer"
# IMG="registry.cn-hangzhou.aliyuncs.com/qpod/developer"
IMG="labnow/developer"
# IMG="quay.io/labnow/developer"

docker run -d --restart=always \
--name=QPod-lab-dev \
--hostname=QPod \
--name=labnow-dev \
--hostname=LabNow \
-p 18888-18890:8888-8890 \
-v $(pwd):/root/lab-dev \
-w /root/lab-dev \
-v $(pwd):/root/labnow \
-w /root/labnow \
$IMG

sleep 5s && docker logs QPod-lab-dev 2>&1|grep token=
sleep 5s && docker logs labnow-dev 2>&1|grep token=
```
2 changes: 1 addition & 1 deletion docker_app_clash/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ docker run -d \
--name=app-clash \
-p 7890:7890 -p 9090:9090 \
-e PROXY_PROVIDER="https://subs.zeabur.app/clash" \
qpod/app-clash
labnow/app-clash
```

After the container starts, visit this page to manage proxy: http://localhost:9090/ui/ui-xd/
2 changes: 1 addition & 1 deletion docker_app_clash/demo/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
svc-clash:
image: docker.io/qpod/app-clash
image: docker.io/labnow/app-clash
container_name: svc-clash
hostname: svc-clash
restart: unless-stopped
Expand Down
2 changes: 1 addition & 1 deletion docker_casdoor/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ RUN set -eux \
&& mkdir -pv /root/web && ln -sf /opt/casdoor/web/build /root/web/ && ls -alh /opt/casdoor/web \
&& chmod +x /opt/casdoor/docker-entrypoint.sh && ls -alh /opt/casdoor

LABEL maintainer="[email protected]"
LABEL maintainer="[email protected]"
ENV RUNNING_IN_DOCKER true
WORKDIR /opt/casdoor
EXPOSE 8000
Expand Down
8 changes: 4 additions & 4 deletions docker_casdoor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ Identity and Access Management (IAM) / Single-Sign-On (SSO) platform: https://gi
## debug

```shell
docker build -t qpod0dev/casdoor \
docker build -t labnow/casdoor \
-f docker_casdoor/Dockerfile \
--build-arg="BASE_NAMESPACE=qpod0dev" \
--build-arg="BASE_NAMESPACE=labnow" \
docker_casdoor

docker run -it \
-p 8000:8000 \
qpod0dev/casdoor \
labnow/casdoor \
bash


docker run --rm -it \
-p 8000:8000 \
-v $(pwd):/root/docker_casdoor \
qpod/go-stack \
labnow/go-stack \
bash
```
6 changes: 3 additions & 3 deletions docker_casdoor/demo/docker-compose.dev.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
services:
db-postgres-casdoor:
# su postgres && psql -d casdoor -U pg-casdoor-username
image: docker.io/qpod/postgres-16:latest
image: docker.io/labnow/postgres-16:latest
container_name: db-postgres
environment:
POSTGRES_DB: casdoor
Expand All @@ -13,9 +13,9 @@ services:
context: ../
dockerfile: Dockerfile
args:
BASE_NAMESPACE: qpod
BASE_NAMESPACE: labnow
tags:
- qpod/casdoor
- labnow/casdoor
container_name: svc-casdoor
# command: ["/bin/bash", "--login", "/opt/casdoor/server", "--createDatabase=true"]
command: |
Expand Down
4 changes: 2 additions & 2 deletions docker_casdoor/demo/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
services:
db-postgres-casdoor:
# su postgres && psql -d casdoor -U pg-casdoor-username
image: docker.io/qpod/postgres-16:latest
image: docker.io/labnow/postgres-16:latest
container_name: db-postgres
environment:
POSTGRES_DB: casdoor
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres

svc-casdoor:
image: docker.io/qpod/casdoor
image: docker.io/labnow/casdoor
container_name: svc-casdoor
# command: ["/bin/bash", "--login", "/opt/casdoor/server", "--createDatabase=true"]
command: |
Expand Down
16 changes: 8 additions & 8 deletions docker_devbox/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,29 @@
## Develop and Debug - Single User

```shell
IMG="qpod/developer"
# IMG="registry.cn-hangzhou.aliyuncs.com/qpod/full-stack-dev"
IMG="labnow/developer"
# IMG="registry.cn-hangzhou.aliyuncs.com/labnow/full-stack-dev"

docker run -d --restart=always \
--name=QPod-lab-dev \
--hostname=QPod \
--name=labnow-dev \
--hostname=LabNow \
-p 18888-18890:8888-8890 \
-v $(pwd):/root/ \
-w /root/ \
$IMG

sleep 5s && docker logs QPod-lab-dev 2>&1|grep token=
sleep 5s && docker logs labnow-dev 2>&1|grep token=
```

Debug building:

```shell
IMG="qpod/rust"
IMG="labnow/rust"
docker run --rm -it \
--name=QPod-lab-dev --hostname=QPod \
--name=labnow-dev --hostname=LabNow \
-p 18888-18890:8888-8890 \
-v $(pwd):/root/ -w /root/ \
$IMG bash

docker exec -it QPod-lab-dev bash
docker exec -it labnow-dev bash
```
2 changes: 1 addition & 1 deletion docker_devbox/dev.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ARG BASE_NAMESPACE
ARG BASE_IMG="core"
FROM ${BASE_NAMESPACE:+$BASE_NAMESPACE/}${BASE_IMG}

LABEL maintainer="[email protected]"
LABEL maintainer="[email protected]"

# base,kernels,extensions,hub
ARG ARG_PROFILE_JUPYTER=base
Expand Down
2 changes: 1 addition & 1 deletion docker_devbox/hub.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ARG BASE_NAMESPACE
ARG BASE_IMG="node"
FROM ${BASE_NAMESPACE:+$BASE_NAMESPACE/}${BASE_IMG}

LABEL maintainer="[email protected]"
LABEL maintainer="[email protected]"

# base,kernels,extensions,hub
ARG ARG_PROFILE_JUPYTER=hub
Expand Down
8 changes: 4 additions & 4 deletions docker_keycloak/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ARG BASE_NAMESPACE
ARG BASE_IMG="jdk-17"
FROM ${BASE_NAMESPACE:+$BASE_NAMESPACE/}${BASE_IMG}

LABEL maintainer="[email protected]"
LABEL maintainer="[email protected]"

COPY work /opt/utils/

Expand Down Expand Up @@ -36,6 +36,6 @@ CMD ["/bin/bash", "--login", "bin/kc.sh", "start-dev"]

# HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD [ "curl", "--head", "-fsSk", "https://localhost:8080/health/ready" ]

# docker build -t qpod/keycloak --build-arg "BASE_NAMESPACE=qpod" .
# (docker rm svc-keycloak || true) && docker run -d -p 8080:8080 --name=svc-keycloak --hostname=svc-keycloak qpod/keycloak
# (docker rm svc-keycloak || true) && docker run -it -p 8080:8080 --name=svc-keycloak --hostname=svc-keycloak qpod/keycloak bin/kc.sh start-dev --verbose
# docker build -t labnow/keycloak --build-arg "BASE_NAMESPACE=labnow" .
# (docker rm svc-keycloak || true) && docker run -d -p 8080:8080 --name=svc-keycloak --hostname=svc-keycloak labnow/keycloak
# (docker rm svc-keycloak || true) && docker run -it -p 8080:8080 --name=svc-keycloak --hostname=svc-keycloak labnow/keycloak bin/kc.sh start-dev --verbose
4 changes: 2 additions & 2 deletions docker_keycloak/demo/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ services:
POSTGRES_PASSWORD: pg-keycloak-password

svc-keycloak:
image: docker.io/qpod/keycloak
image: docker.io/labnow/keycloak
# build:
# context: ../
# dockerfile: Dockerfile
# args:
# BASE_NAMESPACE: qpod0dev
# BASE_NAMESPACE: labnow0dev
container_name: svc-keycloak
# command: ["/bin/bash", "--login", "bin/kc.sh", "start-dev", "--verbose"]
command: |
Expand Down
2 changes: 1 addition & 1 deletion docker_keycloak/work/script-setup-keycloak.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ source /opt/utils/script-utils.sh

setup_keycloak() {
# Install the latest (but not nightly) version of keycloak
VER_KEYCLOAK_MAJOR="26" \
VER_KEYCLOAK_MAJOR="26.3" \
&& VER_KEYCLOAK=$(curl -sL https://github.com/keycloak/keycloak/releases.atom | grep 'releases/tag' | grep -v nightly | grep "${VER_KEYCLOAK_MAJOR}" | head -1 | grep -Po '\d[\d.]+' ) \
&& URL_KEYCLOAK="https://github.com/keycloak/keycloak/releases/download/$VER_KEYCLOAK/keycloak-$VER_KEYCLOAK.tar.gz" \
&& echo "Downloading Keycloak version ${VER_KEYCLOAK} from: ${URL_KEYCLOAK}" \
Expand Down
2 changes: 1 addition & 1 deletion docker_openresty/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ARG BASE_NAMESPACE
ARG BASE_IMG="base"
FROM ${BASE_NAMESPACE:+$BASE_NAMESPACE/}${BASE_IMG}

LABEL maintainer="[email protected]"
LABEL maintainer="[email protected]"

ENV NGINX_ENVSUBST_OUTPUT_DIR /etc/nginx/conf.d
ENV NGINX_ENVSUBST_TEMPLATE_DIR /etc/nginx/templates
Expand Down
4 changes: 2 additions & 2 deletions docker_openresty/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ What's here:
## Debug

```shell
docker run -it --rm qpod/base bash
docker run -it --rm labnow/base bash

docker build -t openresty --build-arg BASE_NAMESPACE=qpod .
docker build -t openresty --build-arg BASE_NAMESPACE=labnow .
```

## Custom Configs
Expand Down
2 changes: 1 addition & 1 deletion docker_searxng/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ docker run -d --rm \
-e SEARXNG_BASE_URL=https://${localhost:8000}/ \
-e UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4} \
-e UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4} \
qpod/searxng
labnow/searxng

docker exec -it svc-searxng bash
```
2 changes: 1 addition & 1 deletion docker_searxng/demo/docker-compose.searxng-standalone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ networks:
services:
svc-searxng:
container_name: svc-searxng
image: docker.io/qpod/searxng:latest
image: docker.io/labnow/searxng:latest
restart: unless-stopped
networks:
- net-searxng
Expand Down
Loading