基于Docker的开发环境容器集合,提供预配置的开发环境。
全功能开发环境容器,集成多种开发工具和运行时环境。
创建 docker-compose.yml:
services:
devbox:
image: docker.cnb.cool/mintimate/code-nest/cloud-base-devbox/all-in-one:latest-linux-amd64
container_name: devbox
restart: unless-stopped
volumes:
- /root/.ssh:/tmp/host-ssh:ro
- ./workspace:/workspace
ports:
- 36000:36000
tty: true
stdin_open: true
如果你是 VSCode 远程开发,只需要和我一样映射 36000 端口即可。VSCode 会自动处理分支端口都是用 SSH 映射到 localhost。
启动:
docker-compose up -d
# SSH 远程登录(支持密码登录,密码在容器启动时自动生成)
ssh -p 36000 root@「服务器 IP」
# 容器进入
docker exec -it devbox zsh
容器首次启动时会自动生成32位随机强密码:
/data/tmp/root_password.txtdocker exec devbox cat /data/tmp/root_password.txt获取密码示例:
# 查看容器启动日志中的密码
docker logs devbox | grep "Root密码"
# 直接读取密码文件
docker exec devbox cat /data/tmp/root_password.txt
/workspace)配置SSH连接:
Host devbox HostName 「服务器 IP」 Port 36000 User root
轻量级 Nginx Web 服务器容器,基于 Alpine Linux 构建。
services:
nginx:
image: docker.cnb.cool/mintimate/code-nest/cloud-base-devbox/web-one:latest-linux-amd64
container_name: nginx-dev
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./webRoot:/www/webRoot
- ./webConf:/www/webConf
- ./logs:/var/log/nginx
/www/ ├── webRoot/ # 网站文件 └── webConf/ # 站点配置
# 启动服务
docker-compose up -d
# 重载配置(已配置环境变量)
docker exec nginx-dev nginx -s reload
# 查看日志
docker logs nginx-dev
webConf/site.conf:
server { listen 80; server_name example.com; root /www/webRoot/example; index index.html; location / { try_files $uri $uri/ =404; } }
cloud-base-devbox/ ├── README.md ├── AllInOneDev/ │ ├── Dockerfile │ └── entrypoint.sh └── NginxWebOne/ ├── Dockerfile └── nginx.conf