大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – Docker,使用docker flag -p 3000:3000无法从localhost:3000进入“rails server”开发,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
FROM ubuntu:trusty ADD . /app # update repos RUN apt-get update # General RUN apt-get install -y git curl software-properties-common python-software-properties ssh # Install ruby (taken from https://gist.github.com/konklone/6662393) RUN \curl -Lk https://get.rvm.io | bash -s stable RUN /bin/bash -l -c "rvm requirements" RUN /bin/bash -l -c "rvm install 2.1.1" ENV PATH /usr/local/rvm/gems/ruby-2.1.1/bin:/usr/local/rvm/rubies/ruby-2.1.1/bin:$PATH RUN gem install bundler --no-ri --no-rdoc # Install nodejs (rails js runtimE) RUN apt-get install -y nodejs # Install POSTGResql (adapted from https://wiki.POSTGResql.org/wiki/Apt) RUN echo "deb http://apt.POSTGResql.org/pub/repos/apt/ $(lsb_release -sC)-pgdg main" RUN curl https://www.POSTGResql.org/media/keys/ACCC4CF8.asc | apt-key add - RUN apt-get update RUN apt-get install -y POSTGResql-9.3 POSTGResql-client-9.3 POSTGResql-contrib-9.3 # Setup POSTGResql RUN mkdir /pgsql && chown POSTGRes /pgsql USER POSTGRes ENV PATH $PATH:/usr/lib/POSTGResql/9.3/bin/ RUN initdb -E UTF8 -D /pgsql/data USER root # Needed for pg gem (from https://stackoverflow.com/a/20754173) RUN apt-get install -y libpq-dev
然后我使用以下命令创建一个容器
docker run -it -p 3000:3000 *dockerfile_image* /bin/bash -l
在该容器内部,我将POSTGResql设置为后台作业并运行rails s
$sudo -u POSTGRes /usr/lib/POSTGResql/9.3/bin/POSTGRes -D /pgsql/data ^z $bg $sudo -u POSTGRes /usr/bin/psql -c "create role *appname* login createdb" $cd /app $bundle && rake db:create db:migrate $rails s => BooTing WEBrick => Rails 4.1.0 application starTing in development on http://0.0.0.0:3000 => Run `rails server -h` for more startup options => Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option) => Ctrl-C to shutdown server ....
但正如标题所述,我无法从localhost:3000连接.
我也试过了
>尝试从0.0.0.0:3000连接
>离开-p 3000:3000并尝试从container_ip:3000连接
>在dockerfile中EXPOSE 3000,使用docker ps查找映射端口并尝试localhost:mapped_port
另外我不知道它是否重要,但我在OSX上使用boot2docker.
TLDR
PortforWARDing目前仅适用于boot2docker上的hack.您需要运行以下命令(并使其保持运行):
boot2docker ssh -L 8080:localhost:80
其中80是容器上的公开端口,8080是您要从主机上访问它的端口.
以上是大佬教程为你收集整理的ruby-on-rails – Docker,使用docker flag -p 3000:3000无法从localhost:3000进入“rails server”开发全部内容,希望文章能够帮你解决ruby-on-rails – Docker,使用docker flag -p 3000:3000无法从localhost:3000进入“rails server”开发所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。