加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – Docker:RUN touch不会创建文件

发布时间:2020-12-16 01:07:24 所属栏目:安全 来源:网络整理
导读:在尝试调试Dockerfile中的RUN语句时,我尝试将输出重定向到绑定卷(./mongo/log)中的文件. 令我惊讶的是,我无法通过RUN命令创建文件,或者使用重定向/附加(,)运算符将另一个命令的输出传输到文件.然而,我能够通过docker exec -ti mycontainer / bin / sh登录正
在尝试调试Dockerfile中的RUN语句时,我尝试将输出重定向到绑定卷(./mongo/log)中的文件.

令我惊讶的是,我无法通过RUN命令创建文件,或者使用重定向/附加(>,>>)运算符将另一个命令的输出传输到文件.然而,我能够通过docker exec -ti mycontainer / bin / sh登录正在运行的容器并从那里发出命令来执行上述任务.

为什么会发生这种情况?如何将Dockerfile / redirect输出中的文件触摸到文件或运行Dockerfile的控制台?

这是我的Dockerfile:

FROM mongo:3.4

#Installing NodeJS
  RUN apt-get update && 
    apt-get install -y curl && 
    curl -sL https://deb.nodesource.com/setup_6.x | bash - && 
    apt-get install -y nodejs


#Setting Up Mongo
  WORKDIR /var/www/smq
  COPY ./mongo-setup.js mongo-setup.js

  ##for testing
  RUN touch /var/log/node.log && /
      node --help 2>&1 > /var/log/node.log

  ##this was the command to debug
  #RUN node mongo-setup.js > /var/log/mongo-setup.log 2> /var/log/mongo-setup.error.log

这里是我的docker-compose.yml的摘录:

mongodb:
    build:
      context: ./
      dockerfile: ./mongodb-dockerfile
    container_name: smqmongodb
    volumes:
     - /var/lib/mongodb/data
     - ./mongo/log/:/var/log/
     - ../.config:/var/www/.config
而不是RUN节点mongo-setup.js> /var/log/mongo-setup.log 2> /var/log/mongo-setup.error.log,在容器内,如果你只是说’RUN node mongo-setup.js’怎么办?

Docker建议使用docker日志.像这样:

docker logs container-name

为了完成您所追求的目标(请参阅mongo设置日志?),您可以拆分stdout&通过管道单独的流来容器的stderr:并将它们发送到文件:

me@host~$docker logs foo > stdout.log 2>stderr.log

me@host~$cat stdout.log
me@host~$cat stderr.log

另请参阅docker logs documentation

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读