首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能通过ansible将sinatra资产提前出售

不能通过ansible将sinatra资产提前出售
EN

Stack Overflow用户
提问于 2015-09-18 14:22:40
回答 2查看 154关注 0票数 1

我正在通过ansible部署我的sinatra项目,其中一个任务是预编译资产。

起初,我对如何正确初始化rbenv提出了质疑。

然后,我所做的是:

代码语言:javascript
复制
- name: Precompiling assets
  command: bash -lc "cd {{ build_path }} && bundle exec rake assetpack:build"

但是我得到了错误的Encoding::UndefinedConversionError at assets/application.js

当我通过ssh连接到服务器并运行bundle exec rake assetpack:build时,一切都很完美。所以,我推测,这与设置环境变量有关

lookup('env', 'LANG')说是"msg": "ru_RU.UTF-8",echo $LANG说是"C“(看那儿)。

看看本期。上面写着:

在不需要LANG的模块上设置LANG到C

自动设置"$LANG=C“模块。

添加环境变量没有给出期望的结果

代码语言:javascript
复制
environment:
  LANG: ru_RU.UTF-8
command: bash -lc "cd {{ build_path }} && bundle exec rake assetpack:build"

同时,shell模块似乎对bundle一无所知,所以这也不起作用:

代码语言:javascript
复制
- name: Precompiling assets
  command: bash -lc "cd {{ build_path }} && bundle exec rake assetpack:build"

我尝试了大量命令,如export LANG=ru_RU.UTF-8command模块、shell模块,但是没有什么帮助,所有的尝试都失败了。

我真的不知道如何解决这个问题。

需要帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-23 11:44:09

我不仅应该更改LANG变量,而且应该同时更改LANGLC_ALL

代码语言:javascript
复制
- name: Precompiling assets
  environment:
    LANG: "ru_RU.UTF-8"
    LC_ALL: "ru_RU.UTF-8"
  command: bash -lc "cd {{ build_path }} && bundle exec rake assetpack:build"

对我起作用了!

票数 0
EN

Stack Overflow用户

发布于 2015-09-20 07:26:41

command模块不适合与多个shell命令一起使用。应该使用shell模块来代替:

代码语言:javascript
复制
- name: Precompiling assets
  shell: bundle exec rake assetpack:build chdir={{ build_path }}

运行bundle之前需要的任何环境变量都可以按照下面的示例进行配置:

代码语言:javascript
复制
- name: Precompiling assets
  shell: RAILS_ENV=development bundle exec rake assetpack:build chdir={{ build_path }}

module.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32654384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档