iiir 项目 Windows部署
iiir 项目 Windows部署
准备docker
-
基本环境
-
配置镜像加速
见本人博客 Windows Docker Desktop 折腾之路 - jentreywang - 博客园
准备脚本和vscode-server安装包
容器的启动脚本 - 用于容器运行时启动服务
必须是Unix编码
start.sh
#!/bin/bash
echo "start iiir container ..."
/etc/init.d/ssh start
/bin/bash
尾部(line4)开启新的会话,防止容器执行完毕后自关闭
准备vscode-server安装包 - 用于VSCode 远程开发
当前的vscode发行版是
版本: 1.66.0 (user setup)
提交: e18005f0f1b33c29e81d732535d8c0e47cafb0b5
日期: 2022-03-30T05:50:14.623Z
Electron: 17.2.0
Chromium: 98.0.4758.109
Node.js: 16.13.0
V8: 9.8.177.11-electron.0
OS: Windows_NT x64 10.0.19043
下载地址的通式
RUN commit_id=e18005f0f1b33c29e81d732535d8c0e47cafb0b5 \
&& curl -sSL https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable -o
人类能看懂的通式
commit_id = "e18005f0f1b33c29e81d732535d8c0e47cafb0b5";
url = "https://update.code.visualstudio.com/commit:" + \
commit_id + "/server-linux-x64/stable"
下载后保存为默认文件名 vscode-server-linux-x64.tar.gz
准备镜像
MySQL
$ docker pull mysql:5.7.32
Python* 编译路径(也可直接拉取)
$ docker pull python:3.8.10-slim-buster
dockerfile: dockerfile_py
FROM python:3.8.10-slim-buster
MAINTAINER jentreywang
LABEL version="1.2" \
description="Development & production environment for iiir project web server. (Basic image including python:3.8.10-slim-buster, openssh-server, git, vscode-server) " \
createDate="2022-04-06" \
by="jentreywang "
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
make \
build-essential \
openssh-server \
git \
curl \
wget \
&& apt-get autoremove -y \
&& update-ca-certificates \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
&& echo "root:密码" | chpasswd \
&& mkdir -p /home/iiir/tools \
&& mkdir -p /home/iiir/script
COPY vscode-server-linux-x64.tar.gz /home/iiir/tools
COPY start.sh /home/iiir/script
RUN commit_id=e18005f0f1b33c29e81d732535d8c0e47cafb0b5 \
&& mkdir -p ~/.vscode-server/bin/${commit_id} \
&& cd ~/.vscode-server/bin/${commit_id} \
&& gunzip -q -r /home/iiir/tools/vscode-server-linux-x64.tar.gz \
&& echo "PermitRootLogin yes" >> /etc/ssh/sshd_config \
&& echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config \
&& ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
EXPOSE 22 80 8080 8081 8082 8083 8084 8085
ENTRYPOINT ["/home/iiir/script/start.sh"]
编译
$ docker build -f dockerfile_py -t iiir-server:1.2 .
Python* 拉取
- 登录阿里云Docker Registry
$ docker login --username=阿里云用户名 registry.cn-shanghai.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
- 从Registry中拉取镜像
$ docker pull registry.cn-shanghai.aliyuncs.com/amtc_docker_aliyun/iiir-amd64:[镜像版本号]
- 将镜像推送到Registry
$ docker login --username=阿里云用户名 registry.cn-shanghai.aliyuncs.com
$ docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/amtc_docker_aliyun/iiir-amd64:[镜像版本号]
$ docker push registry.cn-shanghai.aliyuncs.com/amtc_docker_aliyun/iiir-amd64:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
- 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-shanghai.aliyuncs.com 作为Registry的域名登录。
- 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
$ docker images
使用 "docker push" 命令将该镜像推送至远程。
$ docker push registry-vpc.cn-shanghai.aliyuncs.com/acs/agent:0.7-dfb6816
nginx
$ docker pull nginx:1.20.2
nginx - vue
docker pull registry.cn-shanghai.aliyuncs.com/amtc_docker_aliyun/iiir-nginx-vue:1.0
准备docker net
$ docker network create --driver bridge --subnet 192.168.4.0/24 --gateway 192.168.4.1 mynet
mynet是网络名,可自定义
运行容器
Python
iiir
(本项目先创建mynet)
$ docker run -itd -h iiir-server --restart=always -p 11122:22 -p 11180:80 -p 18080:8080 -p 18081:8081 -p 18082:8082 -p 18083:8083 -p 18084:8084 -p 18085:8085 --name iiir --net docker网络名 镜像名:版本号 /bin/bash
nginx
nginx - vue
VSCode SSH 连接事项
所需插件
-
Remote - SSH
-
Remote - SSH: Editing Configuration Files
-
Remote Development
配置Host
处于 ~/.ssh/config
下
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host # 可自定义的名称,不可使用特殊符号,如冒号
HostName 1.0.0.1 # IP地址
User root # host登录用户名
Port 22 # host的开放端口
如果连接失败
删除 ~/.ssh/config
下的 known_hosts
文件,重新建立连接即可
放入工程* (记录用)
这里优先考虑无git的情况
准备工具:7z
无git的步骤
-
送入工程压缩文档
-
获得项目工程(.zip 为例)
-
解压
-
压缩为 .tar
-
压缩为 .gz
-
送入容器
-
-
安装Python依赖
-
容器内进入工程目录,定位到 requirements.txt
-
pip3 install -r requirements.txt
-
-
检测MySQL
-
定位到 databaseCheck.py
-
python ./databaseCheck.py
-
-
创建SQL表
-
定位到 manage.py 目录 (Django)工程
-
python3 manage.py makemigrations
-
python3 manage.py migrate
-
解压命令
tar -zxvf filename.tar.gz
有git的步骤
-
配置全局git
-
git config --global user.name "用户名"
-
git config --global user.email "邮箱"
-
-
克隆工程
- git clone 你的工程地址如https://gitee.com/helloword/helloworld.git -b 你的分支
-
安装Python依赖
-
容器内进入工程目录,定位到 requirements.txt
-
pip3 install -r requirements.txt
-
-
检测MySQL
-
定位到 databaseCheck.py
-
python ./databaseCheck.py
-
-
创建SQL表
-
定位到 manage.py 目录 (Django)工程
-
python3 manage.py makemigrations
-
python3 manage.py migrate
-