Bash 如何将Docker复制到用户根目录~
我正在写一个Dockerfile来在我的Windows装备上运行ROS,我似乎无法让这个COPY命令复制到容器的用户根目录或任何子目录。我尝试过一些事情,包括搞乱所有权。我知道文件很难看,但仍在学习。我真的不知道这里有什么问题 该文件位于/repos目录旁边,该目录中有一个git repo,可以找到它(rosnoetic分支)。这也是我构建和运行容器的位置 总体目标是让roscore运行(已经运行),然后使用另一个终端执行,并让rosrun ros_essentials_cpp(节点名称)实际工作Bash 如何将Docker复制到用户根目录~,bash,docker,Bash,Docker,我正在写一个Dockerfile来在我的Windows装备上运行ROS,我似乎无法让这个COPY命令复制到容器的用户根目录或任何子目录。我尝试过一些事情,包括搞乱所有权。我知道文件很难看,但仍在学习。我真的不知道这里有什么问题 该文件位于/repos目录旁边,该目录中有一个git repo,可以找到它(rosnoetic分支)。这也是我构建和运行容器的位置 总体目标是让roscore运行(已经运行),然后使用另一个终端执行,并让rosrun ros_essentials_cpp(节点名称)实际工
# ros-noetic with other stuff added
FROM osrf/ros:noetic-desktop-full
SHELL ["/bin/bash", "-c"]
RUN apt update
RUN apt install -y git
RUN apt-get update && apt-get -y install cmake protobuf-compiler
RUN bash
RUN . /opt/ros/noetic/setup.bash && mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/ && chmod 777 src && catkin_make && . devel/setup.bash
RUN cd /
RUN mkdir /repos
COPY /repos ~/catkin_ws/src
RUN echo ". /opt/ros/noetic/setup.bash" >> ~/.bashrc
您需要注意docker上下文。 构建docker时,您正在添加构建映像的路径。 如果您不在
/
文件夹中,您的复制/repos
命令将无法工作
尝试使用以下内容更改docker上下文:
docker build /
您需要注意docker上下文。 构建docker时,您正在添加构建映像的路径。 如果您不在
/
文件夹中,您的复制/repos
命令将无法工作
尝试使用以下内容更改docker上下文:
docker build /
将tilde扩展到主目录是一个shell功能,Dockerfile的
COPY
命令显然不支持该功能。您正在将文件放入一个名为~
的目录中,即您的容器映像可能包含以下内容:
...
dr-xr-xr-x 13 root root 0 Jun 9 00:07 sys
drwxrwxrwt 7 root root 4096 Nov 13 2020 tmp
drwxr-xr-x 13 root root 4096 Nov 13 2020 usr
drwxr-xr-x 18 root root 4096 Nov 13 2020 var
drwxr-xr-x 2 root root 4096 Jun 9 00:07 ~ <--- !!!
将tilde扩展到主目录是一个shell功能,Dockerfile的
COPY
命令显然不支持该功能。您正在将文件放入一个名为~
的目录中,即您的容器映像可能包含以下内容:
...
dr-xr-xr-x 13 root root 0 Jun 9 00:07 sys
drwxrwxrwt 7 root root 4096 Nov 13 2020 tmp
drwxr-xr-x 13 root root 4096 Nov 13 2020 usr
drwxr-xr-x 18 root root 4096 Nov 13 2020 var
drwxr-xr-x 2 root root 4096 Jun 9 00:07 ~ <--- !!!
考虑使用<代码> Env提供<代码> $home <代码>;请参阅使用<代码> Env以提供<代码> $home <代码>;看见