diff --git a/code/app/base-expo-app/docker-compose.yaml b/code/app/base-expo-app/docker-compose.yaml new file mode 100644 index 00000000..96408844 --- /dev/null +++ b/code/app/base-expo-app/docker-compose.yaml @@ -0,0 +1,13 @@ +version: '3' +name: build +services: + build: + build: + context: . + dockerfile: dockerfile.build + image: build + container_name: app + tty: true + stdin_open: true + volumes: + - ./:/WWW/APP/ diff --git a/code/app/base-expo-app/dockerfile.build b/code/app/base-expo-app/dockerfile.build new file mode 100644 index 00000000..aca15f76 --- /dev/null +++ b/code/app/base-expo-app/dockerfile.build @@ -0,0 +1,14 @@ +FROM mobiledevops/android-sdk-image:latest + +RUN apt update \ + && apt install -y nodejs npm +RUN npm i -g eas-cli expo yarn + +COPY ./ /WWW/APP +WORKDIR /WWW/APP + +ENV EXPO_TOKEN=FFb6cn9saprFaYji0JVywV0RiNIB7t-PpUKO3jKQ +ENV NODE_ENV=production + +RUN npm i +CMD eas build --platform android --profile release --local diff --git a/code/app/base-expo-app/eas.json b/code/app/base-expo-app/eas.json new file mode 100644 index 00000000..b03338e1 --- /dev/null +++ b/code/app/base-expo-app/eas.json @@ -0,0 +1,26 @@ +{ + "cli": { + "version": ">= 14.2.0", + "appVersionSource": "local" + }, + "build": { + "development": { + "developmentClient": true, + "distribution": "internal" + }, + "preview": { + "distribution": "internal" + }, + "production": { + "environment": "production", + "autoIncrement": true, + "android": { + "buildType": "apk" + } + } + }, + "submit": { + "production": {} + } +} + diff --git a/notes/后端开发/docker/docker.md b/notes/后端开发/docker/docker.md new file mode 100644 index 00000000..3b44b602 --- /dev/null +++ b/notes/后端开发/docker/docker.md @@ -0,0 +1,235 @@ +## docker 和 docker compose安装 + +### 脚本命令 + +```bash +# 1.创建脚本 +vim docker-script.sh + +# 2.输入内容 i 进行编辑模式, :wq 保存 + +# 3.赋予权限 +chmod +x docker-script.sh + +# 4.运行脚本 +./docker-script.sh +``` + + + +### 对于基于Debian的系统(如Ubuntu、Debian) + +```bash +#!/bin/bash + +# ------------------------- +# 1️⃣ 卸载旧版本 Docker +# ------------------------- +sudo apt-get remove -y \ + docker \ + docker-engine \ + docker.io \ + containerd \ + runc \ + docker-ce \ + docker-ce-cli \ + containerd.io \ + docker-compose-plugin + +# 可选:清理残留数据(慎用,会删除容器和镜像) +# sudo rm -rf /var/lib/docker /var/lib/containerd + +echo "旧版本 Docker 已卸载(如果存在)" + +# ------------------------- +# 2️⃣ 更新软件包列表并安装必要依赖 +# ------------------------- +sudo apt-get update +sudo apt-get install -y ca-certificates curl software-properties-common lsb-release + +# ------------------------- +# 3️⃣ 创建密钥存储目录 +# ------------------------- +sudo install -m 0755 -d /etc/apt/keyrings + +# ------------------------- +# 4️⃣ 下载Docker官方GPG密钥 +# ------------------------- +sudo curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg -o /etc/apt/keyrings/docker.asc +sudo chmod a+r /etc/apt/keyrings/docker.asc + +# ------------------------- +# 5️⃣ 添加 Docker 仓库 +# ------------------------- +if [ "$(lsb_release -is)" = "Ubuntu" ]; then + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +elif [ "$(lsb_release -is)" = "Debian" ]; then + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +fi + +sudo apt-get update +echo "Docker 仓库已添加。" + +# ------------------------- +# 6️⃣ 安装 Docker 及相关组件 +# ------------------------- +sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + +echo "Docker 安装完成 ✅" +``` + +### 对于基于RHEL的系统(如CentOS、RHEL) + +```bash +#!/bin/bash + +# ------------------------- +# 1️⃣ 卸载旧版本 Docker +# ------------------------- +sudo yum remove -y docker \ + docker-client \ + docker-client-latest \ + docker-common \ + docker-latest \ + docker-latest-logrotate \ + docker-logrotate \ + docker-engine \ + docker-ce \ + docker-ce-cli \ + containerd.io \ + docker-compose-plugin + +echo "旧版本 Docker 已卸载(如果存在)" + +# ------------------------- +# 2️⃣ 安装 yum 配置管理工具 +# ------------------------- +sudo yum install -y yum-utils + +# ------------------------- +# 3️⃣ 检测系统发行版并添加 Docker 仓库 +# ------------------------- +if [ -f /etc/centos-release ]; then + # CentOS 系统 + sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo +elif [ -f /etc/redhat-release ]; then + # RHEL 系统 + # 注意:RHEL 用户需要启用订阅管理仓库 + sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo +else + echo "未识别的发行版,脚本退出。" + exit 1 +fi + +# ------------------------- +# 4️⃣ 更新 yum 缓存 +# ------------------------- +sudo yum makecache fast +echo "Docker 仓库已添加。" + +# ------------------------- +# 5️⃣ 安装 Docker 及相关组件 +# ------------------------- +sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + +echo "Docker 安装完成 ✅" +``` + +### 通用脚本 + +```bash +#!/bin/bash + +set -e + +# ------------------------- +# 1️⃣ 卸载旧版本 Docker +# ------------------------- +remove_old_docker() { + if command -v apt-get >/dev/null 2>&1; then + sudo apt-get remove -y docker docker-engine docker.io containerd runc docker-ce docker-ce-cli containerd.io docker-compose-plugin || true + elif command -v yum >/dev/null 2>&1; then + sudo yum remove -y docker \ + docker-client \ + docker-client-latest \ + docker-common \ + docker-latest \ + docker-latest-logrotate \ + docker-logrotate \ + docker-engine \ + docker-ce \ + docker-ce-cli \ + containerd.io \ + docker-compose-plugin || true + fi + echo "旧版本 Docker 已卸载(如果存在)" +} + +# ------------------------- +# 2️⃣ 安装 Docker(DEB 系统) +# ------------------------- +install_docker_deb() { + local distro=$1 + local codename=$2 + sudo apt-get update + sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common lsb-release + sudo install -m 0755 -d /etc/apt/keyrings + sudo curl -fsSL "https://download.docker.com/linux/$distro/gpg" -o /etc/apt/keyrings/docker.asc + sudo chmod a+r /etc/apt/keyrings/docker.asc + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/$distro $codename stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + sudo apt-get update + sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + sudo systemctl enable --now docker +} + +# ------------------------- +# 3️⃣ 安装 Docker(RPM 系统) +# ------------------------- +install_docker_rpm() { + local distro=$1 + if [ "$distro" = "fedora" ]; then + sudo dnf -y install dnf-plugins-core + else + sudo yum install -y yum-utils + fi + sudo yum-config-manager --add-repo "https://download.docker.com/linux/$distro/docker-ce.repo" + sudo yum makecache fast + sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + sudo systemctl enable --now docker +} + +# ------------------------- +# 4️⃣ 主流程 +# ------------------------- +remove_old_docker + +# 检测 Linux 发行版 +if [ -f /etc/os-release ]; then + . /etc/os-release +else + echo "无法确定您的 Linux 发行版。" + exit 1 +fi + +case $ID in + ubuntu|debian|raspbian) + echo "检测到 $ID $VERSION_CODENAME,开始安装 Docker..." + install_docker_deb $ID $VERSION_CODENAME + ;; + centos|rhel|fedora|sles) + echo "检测到 $ID,开始安装 Docker..." + install_docker_rpm $ID + ;; + *) + echo "不支持的 Linux 发行版:$ID" + exit 1 + ;; +esac + +echo "Docker 及 Docker Compose 安装完成 ✅" +``` +