我想将摇杆docker映像导入WSL并将其用作WSL分布(我已经使用基于Ubuntu的其他Docker映像进行了此操作),并使用随附的预装
rstudio-server
。
,这是不起作用的,因为“/init”是用于运行rstudio的Docker映像的CMD,当导入到WSL中或其他情况下不起作用时,它被卡在某个Limbo状态下(很难告诉发生的事情)。
我的问题:一个人将如何使用rocker/geospatial:4.4.2
或rocker/rstudio:4.4.2
用作WSL分布并实际使用的rstudio-server
,该分布已安装为服务?长版本,有详细信息:I当前维护dockerfiles,该码头指定基于Ubuntu的图像以导入WSL作为发行版。这可以帮助我的数据科学家用户进入基于UNIX的操作系统,即使我们只能访问Windows。 当我使用基本的ubuntu docker映像(例如
ubuntu:22.04
.tar.gz
wsl --import
将图像导入WSL 2作为分布。这效果很好!但是,我真的很喜欢将带有rstudio的摇杆基础图像使用,但这似乎不起作用,因为它似乎依赖于仅在Docker运行时运行的“/init”指令。当作为WSL分发运行时,我似乎无法将此“/init”二进制(脚本?)运行(我尝试时没有输出或错误),也无法使用rstudio-server the Manual Way启动rstudio-server, 您可以在WSL分布中看到我收到的错误消息,基于
sudo rstudio-server start
uninstalling和重新安装rstudio-server不起作用。 似乎摇滚歌手希望运行“/init”作为压倒性命令,并且永远不会在后台退出或运行。
查看dockerfile的
rocker/geospatial:4.4.2
:
rocker/geospatial:4.4.2
我的Dockerfile本质上仅将上述用作ABASE图像(
ENV R_VERSION="4.4.2"
ENV R_HOME="/usr/local/lib/R"
ENV TZ="Etc/UTC"
COPY scripts/install_R_source.sh /rocker_scripts/install_R_source.sh
RUN /rocker_scripts/install_R_source.sh
ENV CRAN="https://p3m.dev/cran/__linux__/noble/latest"
ENV LANG=en_US.UTF-8
COPY scripts/bin/ /rocker_scripts/bin/
COPY scripts/setup_R.sh /rocker_scripts/setup_R.sh
RUN <<EOF
if grep -q "1000" /etc/passwd; then
userdel --remove "$(id -un 1000)";
fi
/rocker_scripts/setup_R.sh
EOF
COPY scripts/install_tidyverse.sh /rocker_scripts/install_tidyverse.sh
RUN /rocker_scripts/install_tidyverse.sh
ENV S6_VERSION="v2.1.0.2"
ENV RSTUDIO_VERSION="2024.12.1+563"
ENV DEFAULT_USER="rstudio"
COPY scripts/install_rstudio.sh /rocker_scripts/install_rstudio.sh
COPY scripts/install_s6init.sh /rocker_scripts/install_s6init.sh
COPY scripts/default_user.sh /rocker_scripts/default_user.sh
COPY scripts/init_set_env.sh /rocker_scripts/init_set_env.sh
COPY scripts/init_userconf.sh /rocker_scripts/init_userconf.sh
COPY scripts/pam-helper.sh /rocker_scripts/pam-helper.sh
RUN /rocker_scripts/install_rstudio.sh
EXPOSE 8787
CMD ["/init"] # jkix's note: this seems imperative, somehow
COPY scripts/install_pandoc.sh /rocker_scripts/install_pandoc.sh
RUN /rocker_scripts/install_pandoc.sh
COPY scripts/install_quarto.sh /rocker_scripts/install_quarto.sh
RUN /rocker_scripts/install_quarto.sh
ENV CTAN_REPO="https://mirror.ctan.org/systems/texlive/tlnet"
ENV PATH="$PATH:/usr/local/texlive/bin/linux"
COPY scripts/install_verse.sh /rocker_scripts/install_verse.sh
COPY scripts/install_texlive.sh /rocker_scripts/install_texlive.sh
RUN /rocker_scripts/install_verse.sh
COPY scripts/install_geospatial.sh /rocker_scripts/install_geospatial.sh
RUN /rocker_scripts/install_geospatial.sh
COPY scripts /rocker_scripts
FROM: rocker/geospatial:4.4.2
RETINGCMD.
添加A /bin /bash入口点使用a /bin /bash入口点写作cmd [“/init" fript”
要明确:我要解决的问题是“为什么rstudio-server不会从基于摇杆的WSL分布中启动?”。 我的问题:如果我想使用此图像,我是否有任何追索权,还是坚持使用Ubuntu:22.04更好?有没有某种方式可以使用摇杆地理空间图像所带来的所有好处而不依赖 /init CMD,或者我最好只使用一系列
apt-get
命令来重新创建类似的环境?
也许同样相关的是安装rstudio首先的方式 - 我正在努力理解其中的某些方式,因此任何帮助都会不胜感激(甚至只是一些艰难的爱情“嘿,只是坚持更简单的系统,
https://github.com/rocker-org/rocker-versioned2/blob/master/scripts/install_rstudio.sh
令人讨厌的是,答案与我认为的事情无关。 Rocker/GeoSpatial与此完全无关 - 相反,我在FSTAB文件中发现了一个错误,该错误正在悬挂并阻止任何服务初始化。
TL; DR:如果系统依赖的其他服务有错误,服务可能无法启动。这可能完全遮盖了 - 因此,请检查您的服务和启动脚本,包括 /etc /fstab错误,以查看是否有任何阻止其他服务的初始化。