栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

gitlab ci & docker compose 踩坑记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

gitlab ci & docker compose 踩坑记

最近因为需要使用gitlab上的CI/CD进行自动部署,涉及到了使用docker-compose搭建的远程服务器环境,踩了很多坑,特此记录一下。

.git-ci.yml 样例
stages: # 分段
  - build
  - deploy
  - restart
  - stop


restart-server-dev-job:
  stage: restart
  script:
    - echo "=============== 停止服务器  ==============="
    - chmod a+x ./stop_server_dev.sh
    - ./stop_server_dev.sh
    - echo "=============== 执行结束 ==================="
    - echo "=============== 启动服务器  ==============="
    - chmod a+x ./deploy_dev.sh
    - ./deploy_dev.sh
    - echo "=============== 执行结束 ==================="
  when: manual  # 手动启动
  only:
    - dev  # 使用git上哪个branch
使用sh执行命令
#!/bin/bash
ssh -tt user@server_ip<< remotessh
cd ./path_to_file/
docker-compose exec sts bash  # 进入docker
python --version
python script.py
exit
remotessh
  1. 问题一:Pseudo-terminal will not be allocated because stdin is not a terminal
    解决方法:使用 -tt 参数

ssh 参数:

  • -t:强制配置 pseudo-tty
  • -T:禁止分配伪终端
  1. 问题二:直接在yml中使用 ssh -tt 后只执行第一条命令
    解决方法:使用sh文件存储所有命令及使用remotessh
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号