我在将文件写入之前的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命令导致自动化失败-
如果有帮助的话,下面是带有问题的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
鉴于您的用户能够创建此/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