小编hoo*_*tor的帖子

如何在`$ @`bash变量中包含`-e`参数?

我正在创建一个bash脚本,它将包装一个docker run命令,传入所有参数.正在运行的docker cmd有一个如下-e参数:

docker run --rm -it --name some_name -v $(pwd):/some_dir some_image some_command -e -r -t
Run Code Online (Sandbox Code Playgroud)

但是,bash脚本由于某种原因未传入-e参数.

例如,我有以下test.sh脚本.

#!/bin/bash
echo "Echoing the command arguments."
echo $@
Run Code Online (Sandbox Code Playgroud)

-e参数不通过传递到$@时在第一位置.

$ ./test.sh -e -r -t
Echoing the command arguments.
-r -t

$ ./test.sh -r -e -t
Echoing the command arguments.
-r -e -t
Run Code Online (Sandbox Code Playgroud)

最后,我希望能够按如下方式调用docker命令,只需将所有给定参数从bash脚本传递到docker命令即可.

docker run --rm -it --name some_name -v $(pwd):/some_dir some_image some_command $@
Run Code Online (Sandbox Code Playgroud)

如果用户期望-e传入参数并且未发生关联活动,则这可能会使用户感到困惑.

有没有办法让-e参数通过?

bash echo

6
推荐指数
1
解决办法
85
查看次数

如何在docker-compose run中使用Docker访问Sinatra端口

我不确定如何正确将4567Docker 的Sinatra端口正确地公开回主机。在本地运行该应用程序没有问题。

以下存储库显示了问题的情况https://gitlab.com/davidhooey/sinatra-docker

通过搜索,我注意到以下问题:在Docker容器中运行Ruby Sinatra无法连接(通过Mac主机)或无法找到命令(在不同情况下)?--host 0.0.0.0传递到rackup命令中。但是,我正在使用编程方式启动该网站Site.run!

文件树

.
??? Dockerfile
??? Gemfile
??? Gemfile.lock
??? README.md
??? app.rb
??? docker-compose.yml
??? site.rb
??? views
    ??? index.erb
Run Code Online (Sandbox Code Playgroud)

app.rb

module App
    class App
        def initialize(args)
            # Do some stuff before launching site.
            # Launch site
            Site.run!
        end
    end
end

App::App.new(ARGV)
Run Code Online (Sandbox Code Playgroud)

site.rb:bind西纳特拉设置为0.0.0.0

site.rb

require 'sinatra'

module App
    class Site < Sinatra::Base
        set :bind, '0.0.0.0'
        set :static, …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra docker docker-compose

4
推荐指数
1
解决办法
517
查看次数

标签 统计

bash ×1

docker ×1

docker-compose ×1

echo ×1

ruby ×1

sinatra ×1