我对 Linux 及其命令非常陌生。我想要的是使用cp
命令而不是wget
从浏览器请求。因为我正在使用 docker 和蒙戈网站过滤了我们国家的 IP。我已经在本地系统上下载了文件,并想将其复制到特定路径。我希望使用wget
命令实现相同的功能。
这是我的 import-data.sh 文件:
apt-get update && apt-get install -y wget
wget -O /tmp/zips.json "http://media.mongodb.org/zips.json"
mongoimport --db=test --collection=zips /tmp/zips.json
正如我所提到的,zips.json 文件已下载到本地(./zips.json
)并且不知道如何用 cp 或任何其他命令替换它以正常工作。
答案1
这看起来像您发布的 Dockerfile RUN 指令。如果您正在构建 docker 镜像,并且您的计算机本地有一个需要复制到 docker 镜像中的文件,那么您需要添加 Dockerfile COPY 指令:
COPY <src file> <dest>
对你来说,那将是
COPY zips.json /tmp/zips.json
这会将 zips.json 从主机文件系统复制到 /tmp/zips.json 位置的容器映像中。
必须在 RUN 指令之前添加 COPY 指令。您还需要从 run 指令中删除 wget 部分。
答案2
为什么要复制/tmp/
?
由于您已将文件下载到当前文件夹中,因此不需要前两行import-data.sh
。我建议注释掉前两行并修改最后一行以指向当前文件夹:
#apt-get update && apt-get install -y wget
#wget -O /tmp/zips.json "http://media.mongodb.org/zips.json"
mongoimport --db=test --collection=zips ./zips.json
请注意#
前两行开头的(注释符号)和zips.json
当前文件夹中下载文件的位置。
希望这可以帮助