shell script a ser executado na inicialização no Mac OS X não executa todos os comandos

1

No OS X, estou tentando usar o lingon para executar um script de shell na inicialização. Eu tenho um arquivo ~ / desktop / _admin / boot / bootdocker.sh:

#!/bin/bash
boot2docker up
export DOCKER_HOST=tcp://192.177.59.103:2475

Meu problema é que se eu executar o script a partir da linha de comando com qualquer um destes:

$bash bootdocker.sh
$./bootdocker.sh
$sh bootdocker.sh

Eles executam o primeiro comando, mas não executam o segundo comando exportando a variável DOCKER_HOST.

Alguém pode ver o erro que estou cometendo?

    
por humbug 18.09.2014 / 03:05

3 respostas

2

Se você realmente quiser definir $DOCKER_HOST para todos os seus shells que você gerar, será necessário incorporá-lo ao seu .bashrc ou .bash_profile .

OBSERVAÇÃO: O que você está tentando fazer nunca funcionará, pois os processos-filhos não podem aumentar os ambientes de seus pais.

Você pode fazer isso usando boot2docker da seguinte forma:

$ eval $(boot2docker shellinit)

O verbo shellinit para boot2docker é novo na v1.2.0 e serve para definir o $DOCKER_HOST . Quando você o executa, produz a seguinte saída:

$ boot2docker shellinit
    export DOCKER_HOST=tcp://192.168.59.103:2375
    
por 18.09.2014 / 04:09
0

O segundo comando é executado corretamente, mas como o script está sendo executado em um subshell (processo-filho), o shell pai para o qual você retorna após a execução não herda o env var.

    
por 18.09.2014 / 03:56
0

para obter o var $DOCKER_HOST que você deve executar

./bootdocker.sh

Isso é

  • . um ponto que significa "usar o arquivo como se digitado"
  • ./bootdocker.sh file deve ser pesquisado localmente.
por 18.09.2014 / 09:03