liuyuqi-dellpc 11 months ago
parent
commit
7dab4a050e
10 changed files with 244 additions and 61 deletions
  1. 20 0
      docs/ai.md
  2. 33 1
      docs/dev/dotnet.md
  3. 82 42
      docs/dev/flutter.md
  4. 25 8
      docs/dev/go.md
  5. 32 2
      docs/dev/nodejs.md
  6. 5 0
      docs/dev/others.md
  7. 8 0
      docs/dev/php.md
  8. 12 1
      docs/dev/python.md
  9. 23 3
      docs/others.md
  10. 4 4
      flutter/.ide/Dockerfile-Allinone-flutter

+ 20 - 0
docs/ai.md

@@ -13,3 +13,23 @@ Repo that allows me to build AI tools on top of Hugging Face
 * `numba -s | grep cuda`
 * run `python utils/verify_cuda_pytorch.py`
 * run `nvidia-smi` should show a GPU
+
+
+## Dev Container
+
+用一个python3环境即可,安装aconda,jupyter notebook,tensorflow,pytorch等, VSCode安装相应的扩展,Nvidia
+```bash
+ai\.devcontainer\Dockerfile
+```
+FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
+
+```
+
+## AI Image
+
+镜像一般都比较大
+
+
+环境配置
+
+环境一般通过 requirements.txt(pip), pyproject.toml (poetry), environment.yml(conda) 管理依赖。

+ 33 - 1
docs/dev/dotnet.md

@@ -1,8 +1,40 @@
+# Dotnet
+
+.net 也支持跨平台,可以在windows,mac,linux等平台运行,一般做 aspx web项目。
+
+.net core 3.1 之后,改名为 .net 5,支持更多的平台,如 arm64,wasm等。
+
 ## dotnet action
 
 实现自动构建项目,生成可执行包。签名,上传到 github package 。
 
+配置 `dotnet\.github\workflows\main.yml`:
+```
+        - name: Setup .NET Core SDK
+          uses: actions/setup-dotnet@v1
+          with:
+            dotnet-version: 3.1.100
+
+        - uses: actions/cache@v2
+          with:
+            path: ~/.nuget/packages
+            key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
+            restore-keys: |
+              ${{ runner.os }}-nuget-
+```
+
+打包
+```
+
+```
 
 ## vs构建
 
-传统 C++,C# 等桌面exe项目,使用:`msbuild.yml` 自动构建
+传统 C++,C# 等桌面exe项目,使用:`msbuild.yml` 自动构建
+
+
+## C/C++
+
+C/C++项目编译,
+
+

+ 82 - 42
docs/dev/flutter.md

@@ -12,12 +12,64 @@ FROM jianboy/flutter-dev-container:3.13.5
 
 ## Develop
 
+锁定版本:
+
+```
+flutter 2.0.5
+dart 2.12.3
+gradle 7.4-all
+java   17
+kotlin 1.7.10
+android sdk  33
+```
+
+```
+flutter 3.7.12
+dart 2.19.6
+gradle 7.4-all
+java   17
+kotlin 1.7.10
+android sdk  21-33
+```
+
+```
+flutter 3.19.6
+dart
+gradle tool 7.2.2 gradle-7.5-all.zip
+java   17.0.11-ms
+21.0.1-ms
+11.0.23-ms
+
+kotlin 1.7.10
+android sdk  21-33
+
+```
+
+coding 目前在用的版本:
+
+```
+sift-docker.pkg.coding.net/flutter-team/dev-container/dev-allinone:1.0.9-flutter
+```
+支持flutter开发
+
+```
+sift-docker.pkg.coding.net/flutter-team/dev-container/dev-allinone:1.0.11-flutter
+```
+支持 flutter 开发
+更新 python3 支持,环境变量添加到.bashrc
+
+
+Codespaces在用的版本:
+
+codespaces默认环境就集成了众多开发语言,但是不包含flutter,为此只需要未flutter创建容器即可:
 ```
 docker login --username jianboy
 docker build  -f .devcontainer/Dockerfile2 -t jianboy/flutter-dev-container:3.13.5 .
 docker push jianboy/flutter-dev-container:3.13.5
 
 ```
+已知问题:无法使用docker,无其他环境
+
 
 构建 apk
 ```
@@ -54,18 +106,9 @@ rclone 同步apk
 ```
 
 
-## 构建 flutter Android 项目
-
-## 构建 flutter IOS 项目
-
-本章介绍通过github托管代码,每次提交代码,github action自动触发构建,发布IOS。
-
-### 步骤
+## GitHub Action ipa:
 
-* 安装 Apple证书
-* 构建App
-* 签名
-* 发布
+本章介绍通过 github 托管代码,每次提交代码,github action 自动触发构建ipa,发布IOS。
 
 ### 安装 Apple 证书
 
@@ -82,8 +125,7 @@ P12_PASSWORD
     p12-password: ${{ secrets.P12_PASSWORD }}
 ```
 
-
-# Android studio 构建apk
+## Github Action 构建发布 apk
 
 包含初始化安卓环境,构建,推送消息,提交,上传到应用商店等等
 
@@ -109,55 +151,53 @@ docker push
 
 ```
 
-# dev
 
-基于 docker 快速切换版本开发环境
 
-## nodejs
+## Jenkins
 
-如,项目需要在node14环境下开发,可以使用以下方式:
+通过docker快速启动一个 Jenkins 服务,配置好环境变量,插件,构建任务,即可实现自动化构建,部署,通知等功能。
 
 ```
-docker run --rm -it -v /workspace:/app node:14 /bin/bash
-
+docker run -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
 ```
 
--v /workspace:/app 挂载本地目录到容器内,/workspace 为本地目录,/app 为容器内目录
+配置文件`android-studio\Jenkinsfile`
 
-### 额外配置
+## travis
 
-有时候,项目需要一些额外开发环境,可以新建一个 Dockerfile 文件,构建一个本地镜像
-    
-```Dockerfile
-FROM node:14
-WORKDIR /app
-# todo
-```
+travis是比较早的ci/cd平台,通过 travis-ci 实现自动化构建,部署,通知等功能。主要提供php,nodejs,python等语言的支持,目前是收费的。
 
-然后使用该镜像启动容器:
-```
-docker build -t jianboy/node-hexo:14 .
+配置 `android-studio\.travis.yml`
 
-docker run --rm -it -v /workspace:/app node:14 /bin/bash
 
-```
+## fastlane
 
+## AppCenter
 
+## Gitpod
 
-## python
-
-如,项目需要在python3.8环境下开发,可以使用以下方式:
+通过 `.gitpod.yml`和 `.gitpod.Dockfile` 配置开发环境,实现远程开发。
 
 ```
-docker run --rm -it -v /workspace:/app python:3.8 /bin/bash
+FROM gitpod/workspace-full-vnc
 
 ```
+容器包含 VNC 服务,可以通过浏览器访问远程桌面,在做桌面开发十分有效。
 
-## golang
+此外提供了很多开发环境,如 nodejs,python,java,go,rust等等,可以安装 Chrome 浏览器,远程连接 adb。
 
-如,项目需要在golang1.15环境下开发,可以使用以下方式:
+## Gitlab CI
 
-```
-docker run --rm -it -v /workspace:/app golang:1.15 /bin/bash
+配置 `.gitlab-ci.yml` 文件,实现自动化构建,部署,通知等功能。
 
-```
+
+## Azure DevOps
+
+一般用来开发微软相关的项目,如.net,azure等,提供windows,linux,mac主机构建,。
+
+配置 `dotnet\azure-pipelines.yml`
+
+
+## circleci
+
+## bitrise

+ 25 - 8
docs/dev/go.md

@@ -1,23 +1,28 @@
-# go 构建
+# Go 构建
 
+如,项目需要在golang1.19环境下开发,可以使用以下方式:
+
+```
+docker run --rm -it -v /workspace:/app golang:1.19 /bin/bash
+go build
+```
+
+此外,开发环境还有其他配置,如镜像加速,开发依赖,可以打包一个镜像替代golang:1.19:
 
 ```
 # 构建镜像
-docker build -t jianboy/go-build:1.20 .
-docker run -it --rm -v /workspace/caddy:/workspaces jianboy/go-build:1.20
+docker build --pull --rm -f "Dockerfile-build"-t jianboy/go-build:1.20 .
 
+# 别名 go 命令,执行 go 命令,启动开发容器,并传递参数进容器
 alias go='docker run -it --rm -v /workspace/caddy:/workspaces jianboy/go-build:1.20'
 
 # 构建项目
 git clone https://github.com/caddyserver/caddy
-docker run -it --rm -v /workspace:/workspaces jianboy/go-build:1.20
-cd caddy/cmd/caddy/
-go build -o caddy
 
+docker run -it --rm -v /workspace/caddy:/workspaces jianboy/go-build:1.20
+cd caddy/cmd/caddy/
 GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -o caddy
 
-docker build -t jianboy/go-build:1.21 .
-
 git clone https://gitee.com/dromara/mayfly-go
 docker run -it --rm -v /workspace/mayfly-go/server:/workspaces jianboy/go-build:1.21
 
@@ -28,3 +33,15 @@ GO111MODULE=on CGO_ENABLED=0 GOOS=linux \
 
 ```
 
+## 跨平台编译
+
+Go 语言支持跨平台交叉编译,即在linux就可以编译linux,windows,Android,mac等多平台二进制文件。
+
+
+## Github Action 自动构建,发布,通知
+
+### 自动构建
+
+### 发布
+
+### 通知

+ 32 - 2
docs/dev/nodejs.md

@@ -1,10 +1,40 @@
 # nodejs
 
-nodejs开发,包括vue,react,angular,node服务端,桌面开发等
+nodejs 开发,包括vue,react,angular,node服务端,桌面开发等
+
+
+如,项目需要在 node14 环境下开发,可以使用以下方式:
+
+```
+docker run --rm -it -v /workspace:/app node:14 /bin/bash
+
+```
+
+-v /workspace:/app 挂载本地目录到容器内,/workspace 为本地目录,/app 为容器内目录
+
+### 额外配置
+
+有时候,项目需要一些额外开发环境,可以新建一个 Dockerfile 文件,构建一个本地镜像
+    
+```Dockerfile
+FROM node:14
+WORKDIR /app
+# todo
+```
+
+然后使用该镜像启动容器:
+```
+docker build -t jianboy/node-hexo:14 .
+
+docker run --rm -it -v /workspace:/app node:14 /bin/bash
+
+```
+
+
 
 ## Dockerfile
 
-常见的 vue 等前后端分离项目,buider 层构建,再用base层运行。排除不必要的构建环境。
+常见的 vue 等前后端分离项目,buider 层构建,再用 base 层运行。排除不必要的构建环境。
 
 ## Dockerfile-front-backend
 

+ 5 - 0
docs/dev/others.md

@@ -0,0 +1,5 @@
+# Others
+
+## Rust
+
+## Ruby

+ 8 - 0
docs/dev/php.md

@@ -60,3 +60,11 @@ docker run --rm -it -v /workspace:/app composer:latest /bin/bash
 
 composer create-project --prefer-dist yiisoft/yii2-app-basic demo
 ```
+
+## 数据库
+
+通过docker快速启动一个测试数据库:
+
+```
+
+```

+ 12 - 1
docs/dev/python.md

@@ -1,8 +1,17 @@
 # python
 
+如,项目需要在 python3.8 环境下开发,可以使用以下方式:
 
-# Deploy
+```
+docker run --rm -it -v /workspace:/app python:3.8 /bin/bash
 
+```
+
+python环境编译较慢,为此最佳的方式pull镜像
+
+
+
+## 前后端分离部署方案
 
 部署的方法很多
 
@@ -25,3 +34,5 @@
 ## docker-compose 部署
 
 前端 + nginx 启动一个容器,后端 python.py 启动一个容器,数据库,redis等分别启动一个容器。
+
+

+ 23 - 3
docs/others.md

@@ -1,17 +1,22 @@
 # other
 
-下面收集一下其他使用 GitHub action 
+本章将介绍如何使用 github action 实现自动化操作,如自动签到、issue 机器人、pull request 机器人等。
+
+## 有趣的 Github Action
 
 米游社原神自动每日签到  https://github.com/y1ndan/genshin-impact-helper 
 
 
+
 ## github ISSUE_TEMPLATE
 
-项目配置 `.github\ISSUE_TEMPLATE\bug_report_cn.md` 即
+项目配置 `.github\ISSUE_TEMPLATE\bug_report_cn.md` 用户提交 issue 时自动渲染模板
 
 ## issue 机器人
 
-根据操作自动回复,自动触发事件。如 issue 标记未 duplicate 自动关闭; 如果 pull request结束后,自动关闭相关 issue。
+根据操作自动回复,自动触发事件。如 issue 标记未 duplicate 自动关闭; 
+
+配置文件 `.github\stale.yml`
 
 https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue
 
@@ -19,9 +24,24 @@ https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-
 https://github.com/features/actions
 
 
+目前机器人都由 github action 实现,创建一个 `.github\workflows\close_issues.yml` 文件,即可实现自动化操作。
 
+```yml
+on:
+  issues:
+    types: [opened]
+  pull_request_target:
+    types: [opened]
+```
 
 ## pull request 机器人
 
+用户发起 pull request 后,自动检查代码规范,自动合并代码,自动发布到 npm 等。如果 pull request结束后,自动关闭相关 issue。
+
+```
+
+```
 
+## Donations
 
+配置 `.github\FUNDING.yml` 用于接受捐赠

+ 4 - 4
flutter/.ide/Dockerfile-Allinone-flutter

@@ -10,8 +10,8 @@ RUN apt-get update && apt-get install -y \
 
 # install java
 RUN curl -s "https://get.sdkman.io" | bash
-RUN bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && sdk install java 21.0.1-ms"
-ENV JAVA_HOME /root/.sdkman/candidates/java/21.0.1-ms
+RUN bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && sdk install java 17.0.11-ms"
+ENV JAVA_HOME /root/.sdkman/candidates/java/17.0.11-ms
 ENV PATH=$PATH:$JAVA_HOME/bin
 
 ENV MAVEN_VERSION=3.9.5 \
@@ -55,7 +55,7 @@ RUN git clone --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git
     && cd ${FLUTTER_HOME} \
     && ./bin/flutter precache \
     && ./bin/flutter doctor
-    
+
 RUN curl -fsSL https://fvm.app/install.sh | bash
 
 # install python
@@ -168,7 +168,7 @@ ENV LANGUAGE C.UTF-8
 
 # set path
 RUN echo '\n\
-    export JAVA_HOME=/root/.sdkman/candidates/java/21.0.1-ms \n\
+    export JAVA_HOME=/root/.sdkman/candidates/java/17.0.11-ms \n\
     export PATH=$PATH:$JAVA_HOME/bin \n\
     export GRADLE_HOME=/opt/gradle/gradle-${GRADLE_VERSION} \n\
     export PATH=$PATH:$GRADLE_HOME/bin \n\