Skip to content

jetsung/devenv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

开发环境

基于 Docker + debian:trixie-slim(13) + Nix 的容器内开发环境

特征

  • Nix nixpkgs unstable
  • 系统级主要组件:
    openssh-server
    xz-utils
    curl
    wget
    tree
    make
    git
    vim
    docker
    unzip
    gzip
    jq
  • 编程语言:
    Rust
    Go
    NodeJS
    uv
  • 可手动安装组件:
    EXTS="zoxide hugo skopeo"
    for ext in $EXTS; do curl -L "s.fx4.cn/$ext" | bash; done 
    

运行

  • compose.yml
services:
  devenv:
    image: jetsung/devenv:latest
    container_name: devenv
    hostname: devenv
    restart: unless-stopped
    privileged: true
    env_file:
    - ./.env
    # - ./cn.env
    ports:
    - ${SSH_PORT:-32222}:32222
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - ${HOME:-/srv}/workspaces:/workspaces
    - ./data/.ssh:/root/.ssh
    - ./data/.vscode-server:/root/.vscode-server
  • .env
TZ=Asia/Shanghai
SSH_PORT=32222
  • cn.env
## uv
UV_DEFAULT_INDEX=https://mirrors.aliyun.com/pypi/simple/

## rust
RUSTUP_DIST_SERVER=https://rsproxy.cn
RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup

## nodejs
NVM_NODEJS_ORG_MIRROR=https://mirrors.ustc.edu.cn/node/
NODE_MIRROR=https://mirrors.ustc.edu.cn/node/

## go
GOPROXY=https://goproxy.cn,https://goproxy.io,direct

其它设置

  • 设置时区
    • 外部文件 compose.yml

      TZ=Asia/Shanghai
    • 容器内设置

      ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

构建

本地构建

# 预览构建信息
docker buildx bake --print

# 执行构建
docker buildx bake

测试

docker run --rm -it devenv:local bash

# 容器内执行
dev

# 依次执行
go version
uv --version
rustup default stable

# 安装全局 Python
uv python install --default

Nix 基础教程

  • 添加软件
vi /etc/nix/devflake/flake.nix

# 向 “buildInputs = with pkgs; [ " 内添加软件
  • 配置环境变量
vi /etc/nix/devflake/flake.nix

# 在 shellHook = '' 内添加环境变量

仓库镜像

About

基于 Docker + Debian 13(trixie-slim)+ Nix 的容器内开发环境

Resources

License

Stars

Watchers

Forks

Packages