class DevDock::DevBinds

Public Class Methods

new(list) click to toggle source
# File lib/dev_dock/binds.rb, line 61
def initialize(list)
  @internal_volumes = nil
  @container = nil
  @list = list
end

Public Instance Methods

container?() click to toggle source

check if we're currently running inside of a container

# File lib/dev_dock/binds.rb, line 94
def container?
  if @container.nil?
    if File.exist?('/proc/1/cgroup')
      @container = File.read('/proc/1/cgroup').include?('docker')
    else
      @container = false
    end
  end
  @container
end
create() click to toggle source
# File lib/dev_dock/binds.rb, line 105
def create
  list.each do |bind|
    bind.create
  end
end
internal_volumes() click to toggle source
# File lib/dev_dock/binds.rb, line 67
def internal_volumes
  if container? and @internal_volumes.nil?
    container_id = File.read('/proc/1/cgroup')
      .lines
      .find { |cgroup| cgroup.include?('docker') }
      .split('/')
      .last
      .strip

    container = Docker::Container.get(container_id)
    @internal_volumes = container.json['Volumes']
  end
  @internal_volumes
end
list() click to toggle source
# File lib/dev_dock/binds.rb, line 82
def list
  @list.map do |item|
    source, target, permissions = item.split(':')
    DevBind.new(internal_volumes, source, target, permissions)
  end
end
push(item) click to toggle source
# File lib/dev_dock/binds.rb, line 89
def push(item)
  @list.push(item)
end