Tag: shell

从shell执行多个命令到docker容器

我试图做一个命令,从docker集装箱做一个bash,打开mongo,并用类似的东西提出请求 'db.test.find({});' 我正在阅读其他类似的文章没有成功。 这是我正在执行的命令。 docker exec -it mongoDB bash -c'mongo; 使用testing; db.test.find({})” 那个命令给了我这个 bash:-c:第0行:附近出现意外令牌的语法错误{}' bash:-c:第0行:mongo; 使用testing; db.test.find({})” 这可能吗? 我希望你能帮助我。 问候, 罗斯。

无法使用dockerfile运行shell脚本

我是新来的docker,我只是想在容器内复制贝壳,我想执行贝壳。 Dockerfile: FROM amazonlinux WORKDIR /opt ADD ./test_Install.sh /opt/test_Install.sh RUN chmod 777 /opt/test_Install.sh WORKDIR / RUN ./test_Install.sh 构build镜像: docker build -t "testinstallscript:dockerfile" . 当我使用命令"docker build -t "testinstallscript:dockerfile" ." 我得到以下错误: standard_init_linux.go:178:exec用户进程导致“没有这样的文件或目录” 命令'/opt/test_Install.sh'返回一个非零的代码:1 谁能告诉我我在这里做错了什么?

$(pwd) – 一级

我是bash / shell脚本世界的新手,我正在尝试做下面的工作,这可能很简单,但我无法弄清楚命令,如果有人能够帮助我,也指向我的一些文档关于shell脚本主题。 先谢谢你。 我的build.sh和Dockerfile驻留在名为.settings的文件夹下,并且该文件夹直接位于应用程序根目录下。 现在在我的build.sh和Dockerfile中,当我引用像$(pwd)或COPY的东西。 / apps /它可能无法正常工作,因为我的build.sh和Dockerfile不直接在应用程序根目录下。 我在上面引用的文件中可以使用什么命令。 希望我明确。 再次,这可能是非常简单的,因为我是这个领域的新手,我觉得有点困难。 inside build.sh, reference to $(pwd) docker run \ -u root \ –rm \ -v $(pwd):/app \ —-> this $(pwd) references the application root, but if I move this build.sh inside a folder called .settings then the $(pwd) context would change and I still […]

如果你只有一个Java应用程序的shell安装程序,你如何构build一个docker镜像?

我是docker工人,想了解如何构build一个可以在组织的内部云中部署的docker镜像 目前,我们的供应商已经为我们提供了一个shell脚本,我们用它来在VM上安装一个Java应用程序。 有没有办法使用这个shell脚本为这个Java应用程序构build一个图像? 谢谢。

如何使用从java调用的shell脚本login,标记和推送Docker镜像到AWS

您好,我正尝试通过shell命令编程将Docker镜像推送到AWS EC2容器服务。 但是我遇到了麻烦,我得到以下错误信息: 错误获取凭据 – 错误:exec:“docker-credential-osxkeychain”:在$ PATH中找不到可执行文件,out:“没有基本的身份validation凭证 这个错误信息是从我的java类返回的。 如果我启动shell脚本forms的terminal,我没有问题,只有当我从我的java类开始它。 我创build了一个config.js文件添加到它的osxkeychain,因为我认为这可能会保存问题。 这是我的Dockerfile: FROM java:7 COPY . /Users/betzenben/Desktop/OGC/Projects/Getting_started/Docker/Directory WORKDIR /Users/betzenben/Desktop/OGC/Projects/Getting_started/Docker/Directory RUN javac Time_app.java CMD ["java", "Time_app"] Run : ~/Users/betzenben/Desktop/OGC/Projects/Getting_started/Docker/Directory/config.json 这是我的config.json文件 { "apps": [ { "credsStore": "osxkeychain" } ] } 以防万一需要我的shell脚本代码和我的java类调用shell脚本。 #!/bin/sh echo “test1” getLoginKey="/usr/local/bin/" getLoginKey+="$(/usr/local/bin/aws ecr get-login –no-include-email –region us-west-2)" echo “test2” echo "${getLoginKey}" executeLoginKey="$(eval $getLoginKey)" echo […]

我可以使用DockerFile作为脚本吗?

我们想在DockerHub上利用DockerFiles的优秀目录,但团队不能使用Docker。 是否有任何方式来运行DockerFile,就好像它是一个机器的shell脚本? 例如,如果我select对运行Debian Jessie的服务器运行Docker容器ruby:2.4.1-jessie ,我希望它忽略FROM指令,但是能够从ENV设置环境并运行RUN命令从这个Dockerfile: Github docker -library / ruby​​:2.4.1-jessie

在Jenkinsfile中执行Docker命令时出现exception

我有一个基于Nightwatch.js end2endtesting项目,它是一个NodeJS框架。 我想为我的项目使用'Jenkinsfile'为我的end2endtesting构build一个pipe道,通过Docker container的Jenkins执行它们。 所以,我想启动一个Docker container并执行这个Docker container的testing。 这应该通过Jenkinsfile来实现。 当我不使用Jenkinsfile而是直接在手动创build的作业中使用shell commands时,一切都很完美。 在使用Jenkinsfile我在运行pipe道时遇到MultipleCompilationErrorsException ,我不知道为什么。 这是我的Jenkinsfile : pipeline { agent any parameters { text(defaultValue: 'grme/nightwatch-chrome-firefox:0.0.3', description: '', name: 'docker_image') text(defaultValue: 'npm-test-chrome', description: '', name: 'run_script_method') text(defaultValue: '/Applications/Docker.app/Contents/Resources/bin/docker', description: '', name: 'docker') } stages { stage('Test') { steps { sh 'sudo chmod -R 777 $(pwd)' echo "—— stop all […]

Dockerfile ARG和ENV中的shellexpression式的默认值

我想接收版本号作为单个参数,并在Dockerfile中的RUN脚本中提取URL中各个位置的主要/次要编号。 ARG CUDA_VERSION ARG CUDNN_VERSION ENV CUDA_FULL="${CUDA_VERSION:-8.0.61_375.26}" \ CUDA_MAJOR="$(echo ${CUDA_VERSION:-8.0.61_375.26} | cut -d. -f1)" \ CUDA_MINOR="$(echo ${CUDA_VERSION:-8.0.61_375.26} | cut -d. -f2)" \ CUDA_MAJMIN="$CUDA_MAJOR.$CUDA_MINOR" ENV CUDNN_FULL="${CUDNN_VERSION:-7.0.1}" \ CUDNN_MAJOR="$(echo ${CUDNN_VERSION:-7.0.1} | cut -d. -f1)" \ CUDNN_MINOR="$(echo ${CUDNN_VERSION:-7.0.1} | cut -d. -f2)" \ CUDNN_MAJMIN="$CUDNN_MAJOR.$CUDNN_MINOR" RUN curl -LO https://…/${CUDNN_FULL}/…/…${CUDA_MAJMIN}… 如果我尝试了上面的内容,shellexpression式不会被评估,只是在后来的RUN脚本中被粘贴。 有没有更好的方法来实现这一点,而不创build一个外部的shell脚本包装这个Dockerfile?

奇怪的字符docker执行官

我正在尝试创build一个脚本来运行docker集群。 在我的脚本中有一个时刻,我想从泊坞窗复制一些文件到我的本地机器。 所以我创build了CONTAINER_WORKDIRvariables。 CONTAINER_WORKDIR=`docker exec -it jmeter-master /bin/pwd` 存储在CONTAINER_WORKDIR的值是: /usr/local/apache-jmeter-3.2/bin 问题是这个variables的末尾有一个奇怪的字符。 尝试执行下面的行: echo "docker cp jmeter-master:$CONTAINER_WORKDIR/output.csv ." 我的预期结果是 docker cp jmeter-master:/usr/local/apache-jmeter-3.2/bin/output.csv . 但实际产出是: /output.csv .ter-master:/usr/local/apache-jmeter-3.2/bin pwd或docker exec命令正在返回一个返回字符。 有一种方法可以从CONTAINER_WORKDIRvariables中删除这个字符

在bash数组中为docker命令循环参数?

我似乎被困在这里。 我试图写一个bash函数启动x数量的docker集装箱,希望一个arrays,持有暴露的端口为给定的应用程序。 我不想循环数组,只是命令,而引用数组来获取值。 该函数如下所示: #!/bin/bash declare -a HOSTS=( ["app1"]="8002" ["app2"]="8003" ["app3"]="8008" ["app4"]="8009" ["app5"]="8004" ["app6"]="8007" ["app7"]="8006" ) start() { for app in "$@"; do if [ "docker ps|grep $app" == "$app" ]; then docker stop "$app" fi docker run -it –rm -d –network example_example \ –workdir=/home/docker/app/src/projects/"$app" \ –volume "${PWD}"/example:/home/docker/app/src/example \ –volume "${PWD}"/projects:/home/docker/app/src/projects \ –volume "${PWD}"/docker_etc/example:/etc/example \ […]