Commit f7066b3b5003964a0907a98f3beb99407a7e62a7
1 parent
9b49db2d
docs(deployment): remove docker deployment
Showing
1 changed file
with
1 additions
and
145 deletions
docs/zh/getting-started/deployment.md
| @@ -172,151 +172,7 @@ plan.remote(remote => { | @@ -172,151 +172,7 @@ plan.remote(remote => { | ||
| 172 | 172 | ||
| 173 | 173 | ||
| 174 | ## Docker 部署 | 174 | ## Docker 部署 |
| 175 | - | ||
| 176 | -> 以下方案来自:[https://github.com/yi-ge/luban-h5#docker-%E9%83%A8%E7%BD%B2](https://github.com/yi-ge/luban-h5#docker-%E9%83%A8%E7%BD%B2),非常非常感谢。 | ||
| 177 | -> 但仅供参考,此方案不是鲁班的官方的解决方案 | ||
| 178 | -> | ||
| 179 | -> 鲁班决定暂时不按照这种方案来做,可以先使用上面部署脚本来发布到服务器上,进行部署。 | ||
| 180 | -> | ||
| 181 | -> 鲁班后期考虑出一个简单版本docker image的部署方案,直接拉镜像,在服务器端就能直接跑起来。 | ||
| 182 | - | ||
| 183 | -1. 请确保您的`80`端口和`443`端口均打开,如果已经配置了其它项目,请进行手工调整。 | ||
| 184 | -1. 修改`yourdomain.tld`为您的前端域名并解析到服务器。 | ||
| 185 | -1. 修改`api.yourdomain.tld`为您的后端域名并解析到服务器。 | ||
| 186 | -1. 依次执行以下命令。 | ||
| 187 | - | ||
| 188 | -```bash | ||
| 189 | -# Clone luban-h5 | ||
| 190 | -git clone https://github.com/ly525/luban-h5.git | ||
| 191 | -cd luban-h5 | ||
| 192 | - | ||
| 193 | -# Install require package | ||
| 194 | -docker run --rm -v `pwd`:/root -w /root/back-end/h5-api node:12.8.1 bash -c "yarn && NODE_ENV=production yarn build" | ||
| 195 | - | ||
| 196 | -docker run --rm -v `pwd`:/root -w /root/front-end/h5 \ | ||
| 197 | - --env "PUBLIC_PATH=/" \ | ||
| 198 | - --env "PROD_API_ORIGIN=api.yourdomain.tld" \ | ||
| 199 | - node:12.8.1 bash -c "yarn && NODE_ENV=production yarn build && node build/engine.webpack.js" | ||
| 200 | - | ||
| 201 | -# Start back-end | ||
| 202 | -docker run --detach \ | ||
| 203 | - --name nginx-proxy \ | ||
| 204 | - --publish 80:80 \ | ||
| 205 | - --publish 443:443 \ | ||
| 206 | - --volume /etc/nginx/certs \ | ||
| 207 | - --volume /etc/nginx/vhost.d \ | ||
| 208 | - --volume /usr/share/nginx/html \ | ||
| 209 | - --volume /var/run/docker.sock:/tmp/docker.sock:ro \ | ||
| 210 | - jwilder/nginx-proxy | ||
| 211 | - | ||
| 212 | -docker run --detach \ | ||
| 213 | - --name nginx-proxy-letsencrypt \ | ||
| 214 | - --volumes-from nginx-proxy \ | ||
| 215 | - --volume /var/run/docker.sock:/var/run/docker.sock:ro \ | ||
| 216 | - jrcs/letsencrypt-nginx-proxy-companion | ||
| 217 | - | ||
| 218 | -docker run -itd -m 512m \ | ||
| 219 | - --restart=always \ | ||
| 220 | - --name luban-h5-front \ | ||
| 221 | - -v `pwd`/front-end/h5/dist:/usr/share/nginx/html \ | ||
| 222 | - --env "NODE_ENV=production" \ | ||
| 223 | - --env "VIRTUAL_HOST=yourdomain.tld" \ | ||
| 224 | - --env "LETSENCRYPT_HOST=yourdomain.tld" \ | ||
| 225 | - --env "PROD_API_ORIGIN=api.yourdomain.tld" \ | ||
| 226 | - nginx | ||
| 227 | - | ||
| 228 | -# Start font-end | ||
| 229 | -docker run -itd -m 1024m \ | ||
| 230 | - --name luban-h5-api \ | ||
| 231 | - --restart=always \ | ||
| 232 | - -v `pwd`:/root -w /root/back-end/h5-api \ | ||
| 233 | - -p 1337:1337 \ | ||
| 234 | - --env "NODE_ENV=production" \ | ||
| 235 | - --env "VIRTUAL_PORT=1337" \ | ||
| 236 | - --env "VIRTUAL_HOST=api.yourdomain.tld" \ | ||
| 237 | - --env "LETSENCRYPT_HOST=api.yourdomain.tld" \ | ||
| 238 | - --restart=always node:12.8.1 \ | ||
| 239 | - yarn start | ||
| 240 | -``` | ||
| 241 | - | ||
| 242 | -稍等片刻,访问`https://你的域名`,部署完成。 | ||
| 243 | - | ||
| 244 | -关于Nginx、SSL的配置,可以参考:[https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) | ||
| 245 | - | ||
| 246 | - | ||
| 247 | - | ||
| 248 | ---- | ||
| 249 | - | ||
| 250 | -docker 自我学习,请忽略 | ||
| 251 | - | ||
| 252 | -```bash | ||
| 253 | -docker --rm | ||
| 254 | - 相当于: | ||
| 255 | - 1. docker run hello-world(hello-world为image-name) | ||
| 256 | - 2. docker rm hello-world-container-id(通过 docker ps -a 查看) | ||
| 257 | - | ||
| 258 | - 在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据。 | ||
| 259 | - 但是,对于foreground容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置--rm选项,这样在容器退出时就能够自动清理容器内部的文件系统。示例如下: | ||
| 260 | - docker run --rm bba-208等价于docker run --rm=true bba-208。 | ||
| 261 | - 显然,--rm选项不能与-d同时使用,即只能自动清理foreground容器,不能自动清理detached容器 | ||
| 262 | - 注意,--rm选项也会清理容器的匿名data volumes。 | ||
| 263 | - 所以,执行docker run命令带--rm命令选项,等价于在容器退出后,执行docker rm -v。 | ||
| 264 | - | ||
| 265 | - | ||
| 266 | -Docker命令详解(run篇) | ||
| 267 | - 命令格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...] | ||
| 268 | - Usage: Run a command in a new container | ||
| 269 | - 中文意思为:通过run命令创建一个新的容器(container) | ||
| 270 | - | ||
| 271 | - 常用选项说明 | ||
| 272 | - -d, --detach=false, 指定容器运行于前台还是后台,默认为false | ||
| 273 | - -i, --interactive=false, 打开STDIN,用于控制台交互 | ||
| 274 | - -t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false | ||
| 275 | - -u, --user="", 指定容器的用户 | ||
| 276 | - -a, --attach=[], 登录容器(必须是以docker run -d启动的容器) | ||
| 277 | - -w, --workdir="", 指定容器的工作目录 | ||
| 278 | - -c, --cpu-shares=0, 设置容器CPU权重,在CPU共享场景使用 | ||
| 279 | - -e, --env=[], 指定环境变量,容器中可以使用该环境变量 | ||
| 280 | - -m, --memory="", 指定容器的内存上限 | ||
| 281 | - -P, --publish-all=false, 指定容器暴露的端口 | ||
| 282 | - -p, --publish=[], 指定容器暴露的端口 | ||
| 283 | - -h, --hostname="", 指定容器的主机名 | ||
| 284 | - -v, --volume=[], 给容器挂载存储卷,挂载到容器的某个目录 | ||
| 285 | - --volumes-from=[], 给容器挂载其他容器上的卷,挂载到容器的某个目录 | ||
| 286 | - --cap-add=[], 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities | ||
| 287 | - --cap-drop=[], 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities | ||
| 288 | - --cidfile="", 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法 | ||
| 289 | - --cpuset="", 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU | ||
| 290 | - --device=[], 添加主机设备给容器,相当于设备直通 | ||
| 291 | - --dns=[], 指定容器的dns服务器 | ||
| 292 | - --dns-search=[], 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件 | ||
| 293 | - --entrypoint="", 覆盖image的入口点 | ||
| 294 | - --env-file=[], 指定环境变量文件,文件格式为每行一个环境变量 | ||
| 295 | - --expose=[], 指定容器暴露的端口,即修改镜像的暴露端口 | ||
| 296 | - --link=[], 指定容器间的关联,使用其他容器的IP、env等信息 | ||
| 297 | - --lxc-conf=[], 指定容器的配置文件,只有在指定--exec-driver=lxc时使用 | ||
| 298 | - --name="", 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字 | ||
| 299 | - --net="bridge", 容器网络设置: | ||
| 300 | - bridge 使用docker daemon指定的网桥 | ||
| 301 | - host //容器使用主机的网络 | ||
| 302 | - container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源 | ||
| 303 | - none 容器使用自己的网络(类似--net=bridge),但是不进行配置 | ||
| 304 | - --privileged=false, 指定容器是否为特权容器,特权容器拥有所有的capabilities | ||
| 305 | - --restart="no", 指定容器停止后的重启策略: | ||
| 306 | - no:容器退出时不重启 | ||
| 307 | - on-failure:容器故障退出(返回值非零)时重启 | ||
| 308 | - always:容器退出时总是重启 | ||
| 309 | - --rm=false, 指定容器停止后自动删除容器(不支持以docker run -d启动的容器) | ||
| 310 | - --sig-proxy=true, 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理 | ||
| 311 | - 示例 | ||
| 312 | - 运行一个在后台执行的容器,同时,还能用控制台管理:docker run -i -t -d ubuntu:latest | ||
| 313 | - 运行一个带命令在后台不断执行的容器,不直接展示容器内部信息:docker run -d ubuntu:latest ping www.docker.com | ||
| 314 | - 运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑,还能用控制台管理,docker run -d --restart=always ubuntu:latest ping www.docker.com | ||
| 315 | - 为容器指定一个名字,docker run -d --name=ubuntu_server ubuntu:latest | ||
| 316 | - 容器暴露80端口,并指定宿主机80端口与其通信(: 之前是宿主机端口,之后是容器需暴露的端口),docker run -d --name=ubuntu_server -p 80:80 ubuntu:latest | ||
| 317 | - 指定容器内目录与宿主机目录共享(: 之前是宿主机文件夹,之后是容器需共享的文件夹),docker run -d --name=ubuntu_server -v /etc/www:/var/www ubuntu:latest | ||
| 318 | -``` | ||
| 319 | - | 175 | +> TODO,PR is welcome |
| 320 | 176 | ||
| 321 | ## Heroku | 177 | ## Heroku |
| 322 | > TODO | 178 | > TODO |