gpt4 book ai didi

ruby-on-rails - 在 Azure 中通过 Docker bash 运行 Rails CLI 命令

转载 作者:行者123 更新时间:2023-12-03 02:07:44 25 4
gpt4 key购买 nike

我有一个容器化 Rails 应用程序,部署在 Azure 中的应用服务上。我已经为我的 docker 启用了 SSH,以便手动运行一些 rake 并执行 Rails CLI 命令。

问题:通过 Azure 门户中的 SSH 登录不允许我运行任何命令(rake、迁移等)。

即使应用程序已成功部署并运行,我总是遇到命令未找到错误,因此这必须意味着 Rails 和所有 gem 都安装在某个地方。 bundler 与 ruby​​ 一起安装在 docker 容器中。

我的dockerfile:

FROM ruby:2.6.3

....

WORKDIR /app
COPY . /app

ENV RAILS_ENV production
ENV RAILS_SERVE_STATIC_FILES true
ENV RAILS_LOG_TO_STDOUT true

ADD Gemfile /app
ADD Gemfile.lock /app
RUN gem install bundler
RUN bundle config set --local without 'test' --with runtime --deployment
RUN bundle install

EXPOSE 3000 80 2222

RUN ["chmod","+x","entrypoint.sh"]

ENTRYPOINT ["./entrypoint.sh"]

非常感谢任何帮助!

我尝试执行 which ruby​​,并查看 gems 文件夹,但我只在那里找到了捆绑程序。我尝试将 GEM_HOME 和 GEM_PATH 设置为指向我的本地应用程序,但捆绑程序再次安装在那里,并且所有其他 gem 都丢失了。

执行which/locaterails没有找到安装。当我尝试运行 bin/rails 时,它提示其他 gem 未安装/

这里有什么问题吗?我应该通过 azure 执行此操作吗?还有其他方法吗?

最佳答案

我认为环境变量不会自动传递到 SSH session 。我必须将这些添加到我的 docker 镜像启动脚本中

# This makes env variables available in the SSH session too.
eval $(printenv | sed -n "s/^\([^=]\+\)=\(.*\)$/export \1=\2/p" | sed 's/"/\\\"/g' | sed '/=/s//=\'\''/' | sed 's/$/\'\''/' >> /etc/profile)

检查this link .

关于ruby-on-rails - 在 Azure 中通过 Docker bash 运行 Rails CLI 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74400977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com