当前位置: 首页 > 知识库问答 >
问题:

无法使用Jenkins automation将文件放入现有目录结构中

梁成双
2023-03-14

我在将文件写入之前的curl/tar命令创建的目录时遇到问题。我可以在现有的目录结构下创建一个子目录,但我不能使用tar命令将文件放置在先前存在的目录结构中。

换句话说,我想放一个。jar文件位于/opt/$JMETER_VERSION/lib目录中,无法删除。奇怪的是,我可以在/opt/$JMETER_VERSION/lib下创建一个子目录,并可以在其中放入一个文件,但我不能使用tar命令,也不能使用mv或cp将文件放入/lib目录。

我做了一个“chmod w/opt/$JMETER_VERSION/lib”,还做了一个“ls-l-R/opt”,所有东西都显示为根目录下,这就是我在dockerfile中进行自动化时所使用的。知道我为什么不能写/opt/$JMETER_VERSION/lib吗?

下面的tar命令导致自动化失败-

共有2个答案

阮梓
2023-03-14

如果有帮助的话,下面是带有问题的RUN命令。如果我注释掉中间注释行上方的tar命令,自动化就会通过,但我当然不会得到。我需要jar文件。

安装JMeter、JMeter的MySQL连接器、插件管理器和插件(未弃用)

RUN curl -fsSL --compressed -o /tmp/jmeter.tgz https://archive.apache.org/dist/jmeter/binaries/$JMETER_VERSION.tgz \
    && tar -C /opt -xzvf /tmp/jmeter.tgz \
    && rm /tmp/jmeter.tgz \
    && curl -fsSL --compressed -o /tmp/mysql-connector.tar.gz https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-6.0.3.tar.gz \
    && chmod +w /opt/$JMETER_VERSION/lib
    && tar -C /opt/$JMETER_VERSION/lib -xzvf /tmp/mysql-connector.tar.gz --strip-components 1 mysql-connector-java-6.0.3/mysql-connector-java-6.0.3-bin.jar \
    # && tar -C /tmp -xzvf /tmp/mysql-connector.tar.gz --strip-components 1 mysql-connector-java-6.0.3/mysql-connector-java-6.0.3-bin.jar \
    && rm /tmp/mysql-connector.tar.gz \
    && curl -fsSL --compressed -o /opt/$JMETER_VERSION/lib/ext/jmeter-plugins-manager.jar https://jmeter-plugins.org/get \
    && curl -fsSL --compressed -o /opt/$JMETER_VERSION/lib/cmdrunner-$CMDRUNNER_VERSION.jar https://repo1.maven.org/maven2/kg/apc/cmdrunner/$CMDRUNNER_VERSION/cmdrunner-$CMDRUNNER_VERSION.jar\
    && java -cp /opt/$JMETER_VERSION/lib/ext/jmeter-plugins-manager.jar org.jmeterplugins.repository.PluginManagerCMDInstaller \
    && /opt/$JMETER_VERSION/bin/PluginsManagerCMD.sh install-all-except jpgc-hadoop,jpgc-oauth,ulp-jmeter-gwt-plugin,ulp-jmeter-autocorrelator-plugin,ulp-jmeter-videostreaming-plugin \
    && sleep 2 \
    && /opt/$JMETER_VERSION/bin/PluginsManagerCMD.sh status
袁增
2023-03-14

鉴于您的用户能够创建此/opt/$JMETER_VERSION目录,它应该已经在那里具有写访问权限。

我认为不可能在不保留整个目录结构的情况下从tarball中提取单个文件,因此我建议提取mysql-connector-java-6.0.3文件夹,移动mysql-connector-java-6.0.3-bin。jar从它到JMeter的“lib”文件夹(或JMeter类路径中的其他文件夹),并执行/tmp文件夹的清理。

Dockerfile示例

FROM openjdk:8-jdk-slim

ARG JMETER_VERSION=apache-jmeter-5.4.1
ARG JMETER_DOWNLOAD_URL=https://archive.apache.org/dist/jmeter/binaries/${JMETER_VERSION}.tgz

RUN apt-get update && \
    apt-get install -y \
    curl procps && \
    rm -rf /var/lib/apt/lists/* 

RUN mkdir -p /opt/${JMETER_VERSION} \
  && curl -fsSL -o /tmp/apache-jmeter.tar.gz ${JMETER_DOWNLOAD_URL} \
  && tar -xzf /tmp/apache-jmeter.tar.gz -C /opt/${JMETER_VERSION} --strip-components=1 \
  && rm -f /tmp/apache-jmeter.tar.gz \
  && curl -fsSL --compressed -o /tmp/mysql-connector.tar.gz https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-6.0.3.tar.gz \
  && tar -xzf /tmp/mysql-connector.tar.gz -C /tmp mysql-connector-java-6.0.3/mysql-connector-java-6.0.3-bin.jar \
  && mv /tmp/mysql-connector-java-6.0.3/mysql-connector-java-6.0.3-bin.jar /opt/${JMETER_VERSION}/lib \
  && rm -rf /tmp/mysql-connector*

更多信息:使用Docker和JMeter-了解如何使用

 类似资料:
  • ├── LICENSE ├── Outpostcamera # 哨岗相机 │ ├── launch # launch 文件 │ ├── msg # 消息类型 │ ├── photo # 场地可视化文件 │ ├── src # 哨岗相机源文件 │ └── tools # 权重文件及配置文件 ├── RTS-deplo

  • 出于安全考虑,iOS系统把每个应用以及数据都放到一个沙盒(sandbox)里面,应用只能访问自己沙盒目录里面的文件、网络资源等(也有例外,比如系统通讯录、照相机、照片等能在用户授权的情况下被第三方应用访问)[1]。 请注意,使用沙盒的目的是为了防止被攻击的应用危害到系统或者其他应用,它并不能阻止应用本身被攻击,因此,开发者需要防御式的编程来避免应用被攻击。苹果官方是这样说的: Important:

  • 前言 这一篇,我们将接着上篇来完成创建项目文件、目录结构。 回顾 先回顾一下现在项目有哪些东西了: . ├── app │   ├── app.vue │   ├── common │   │   ├── img │   │   ├── js │   │   └── scss │   ├── index.html │   ├── index.js │   ├── router

  • 我在Windows中使用Java8,我试图实现一件简单的事情。假设我有一个目录和一个目录。我每天都在尝试将文件从源移动到目的地。下面是一个简单的java代码,使用NIO; null

  • 问题内容: 我有一个像这样的文件结构: 我想使用Javascript和Node.js侦听此根目录和所有子目录,并创建一个反映此目录结构的JSON,每个节点均包含类型,名称,路径和子级: 这是一个coffeescript JSON: 如何在Django视图中获取此JSON数据格式?(python) 问题答案: 这是草图。错误处理留给读者练习。

  • 问题内容: 我有一个可压缩文件()的Python脚本: 当我这样做时,我得到了zip文件。但是,当我尝试解压缩文件时,我在对应于文件路径的一系列目录中获取了文本文件,即,我在目录中看到一个名为的文件夹,并且其中包含更多目录,即 当我解压缩时,我的目录结构看起来像 有没有一种方法可以使我解压缩,而只能得到? 换句话说,当我解压缩时,它看起来应该像 问题答案: 该方法采用一个可选参数,该参数指定zip