当前位置: 首页 > 面试题库 >

docker-compose:在詹金斯上找不到命令

唐涛
2023-03-14
问题内容

我有一个docker撰写文件

version: "3"
services:
  mysql:
    image: mysql:latest
    container_name: locations-service-mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USERNAME: root
      MYSQL_DATABASE: 'locations_schema'
    restart: always
    volumes:
      - mysql_data:/var/lib/mysql:rw

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    ports:
      - 8181:80
    environment:
      MYSQL_USERNAME: root
      MYSQL_ROOT_PASSWORD: root
      PMA_HOST: mysql
    depends_on:
      - mysql
    links:
      - mysql:mysql


  dropwizard:
    build:
      context : ../locations-service/
    ports:
          - 8080:8080
          - 8081:8081
    depends_on:
          - mysql
    links:
      - mysql:mysql
    restart: always
    container_name: locations-service

volumes:
  mysql_data:

而且我已经配置了詹金斯工作以通过调用另一个外壳文件“ environment.sh”来执行此文件,但是它尝试执行以下错误:

23:51:57 ./environment.sh: line 3: docker-compose: command not found
23:51:57 ./environment.sh: line 4: docker-compose: command not found
23:51:57 ./environment.sh: line 6: docker-compose: command not found
23:51:57  FAILED
23:51:57 
23:51:57 FAILURE: Build failed with an exception.
23:51:57 
23:51:57 * What went wrong:
23:51:57 Execution failed for task ':startDockerEnvironment'.
23:51:57 > Process 'command './environment.sh'' finished with non-zero exit value 127

我如何在jenkins服务器中下载和配置docker-compose,也没有可用的插件!,适用于docker-compose


问题答案:

docker-compose$ PATH环境变量中可能不存在您。

首先,您应该删除所有冲突的内容docker-compose-

rm /usr/local/bin/docker-compose

在大多数Linux系统上,以下是我更喜欢安装docker和docker compose的方式-

(以超级用户身份运行命令)

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
usermod -aG docker $YOUR_USER
systemctl enable docker

退出当前的tty并使用再次登录$YOUR_USER。这将始终安装最新的docker引擎CE和docker-compose(v1.17)。



 类似资料:
  • 问题内容: 尝试粘贴到我安装了Java JDK的位置,但是Jenkins一直说: 还尝试并得到: 任何人最后一个文件夹/文件应该是什么?我假设bin \ java,但这给我带来麻烦。 问题答案: 应该指向

  • 这是我的第一个Jenkins脚本,它目前在Linux上运行良好,但我迁移到MacOS(High Sierra),结果得到了shell脚本错误。 节点和纱线包安装在本地Jenkins用户上。我不明白为什么会发生这个错误,有人能帮我吗? 这是我的詹金斯档案: 和完整日志: 14:43:11使用hariklee连接到https://api.github.com/****** 从6c639bd70ac86

  • 问题内容: 我想在詹金斯中设置很多变量。我试图把他们的,和该的用户,但是当构建正在发生詹金斯无法找到他们。 唯一可行的方法是将所有env变量放入其中,如下所示: 但是我不认为这是个好方法。 在詹金斯中设置环境变量的正确方法是什么? 问题答案: 在我看来,这很正常。并且应被视为文本凭据,您可以使用 指令添加环境变量。 如果你需要保持环境变量分开,你可以创建一个包含所有的常规文件,然后将该文件加载到使

  • 问题内容: 我有一个包含differents变量的docker-compose.yml文件 在我的外壳中,我导出RegistryUrl和image_version 这在我的本地环境中有效(我正在使用boot2Docker),但在Jenkins中则无效。我发错消息了。 我尝试通过EnvInject插件传递env变量,但它也不起作用。 问题答案: 您在jenkins shell中的环境变量将不会自动导

  • 有没有可能让詹金斯使用真正的浏览器而不是无头浏览器?我正在运行一些用TestNG编写的测试(使用Selenium webdriver)。当我运行testng时。在Eclipse中,浏览器启动并运行测试。但当我使用Jenkins并用maven运行测试时,它不会启动任何浏览器。

  • 问题内容: 有人可以帮我摆脱Jenkins groovy脚本中的sed shell命令吗? 好辛苦 问题答案: 三重双引号()字符串文字语法允许变量/表达式替换(插值),因此反斜杠()被解释为特殊字符“转义”。由于第一个打开的括号不是这样的特殊字符,因此Groovy编译失败。如果要在结果字符串中使用文字反斜杠,则需要转义反斜杠。也就是说,使用双反斜杠()代替一个文字反斜杠。 从而: