如何在Heroku中访问我的Docker容器?

时间:2018-10-13 09:15:42

标签: docker heroku ros

我已按照以下说明在此处制作图像:https://devcenter.heroku.com/articles/container-registry-and-runtime#getting-started

我已成功将图像发布到我的heroku应用程序中,我不知道下一步该如何访问zsh命令行并开发一些东西。我正在尝试在Heroku的docker容器中使用ROS(机器人操作系统)。

这是我的Dockerfile:

FROM osrf/ros:kinetic-desktop-full
RUN apt-get update && apt-get install -y \
            locales \
        tmux \
        zsh \
        curl \
        wget \
        vim \
        emacs24 \
        sudo \
        libgl1-mesa-glx \
        libgl1-mesa-dri \
        mesa-utils \
        unzip \
        && rm -rf /var/likb/apt/lists/*
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
CMD ["zsh"]

如您所见,我只是将ROS和基本软件包与zsh命令行一起安装。这是我按照他们的说明上传到Heroku的内容。

现在,在本地PC上,我只需运行此脚本即可激活容器并访问zsh命令行并进一步开发ROS(就像我通常使用bash行一样):

#! /bin/bash

xhost +local:
docker run -it --net=host \
--user=$(id -u) \
-e DISPLAY=$DISPLAY \
-e QT_GRAPHICSSYSTEM=native \
-e CONTAINER_NAME=ros-kinetic-dev \
-e USER=$USER \
--workdir=/home/$USER \
-v "/tmp/.X11-unix:/tmp/.X11-unix" \
-v "/etc/group:/etc/group:ro" \
-v "/etc/passwd:/etc/passwd:ro" \
-v "/etc/shadow:/etc/shadow:ro" \
-v "/etc/sudoers.d:/etc/sudoers.d:ro" \
-v "/home/$USER/:/home/$USER/" \
--device=/dev/dri:/dev/dri \
--name=ros-kinetic-dev \
kinetic:dev

简而言之,由于ROS严重依赖于Qt,因此我还使GUI能够看到某些可视化效果,例如RViz。

那么,您能帮我如何在heroku上访问同一zsh命令行(使用推送的图像)吗?

1 个答案:

答案 0 :(得分:0)

您可以通过以下命令找到所需的容器ID

$ docker ps

然后您可以使用以下方法访问容器:

$ docker exec -it <desired-container-ID> bash