启动后如何在Docker容器中设置环境变量

时间:2019-06-18 00:18:49

标签: docker environment-variables dockerfile

启动后,我需要在Docker容器中设置一些环境变量。当泊坞窗启动时,env X会获取值,那么我想使用以下命令将env Y设置为值X的第一部分: Y = $(echo $ X | cut -d'@'-f 1)

有什么办法吗?

我在Dockerfile中尝试了ENTRYPOINT和CMD,但是它不起作用。 该docker将部署在Kubernetes集群上,我也尝试在config.yaml文件中设置它们,但是它也不起作用。

2 个答案:

答案 0 :(得分:0)

您可以在dockerfile中使用ENV命令,如下所示:

int _bottomBarIndex = 0, _activateTime = 3000;
bool _isPageTwo = false;

Widget callPage(int index) {
  switch (index) {
    case 0:
      return Page1();
    case 1:
      return Page2();
    case 2:
      return Page3();
    default:
      return Page1();
  }
}

@override
Widget build(BuildContext context) {
  return Scaffold(
    bottomNavigationBar: AbsorbPointer(
      absorbing: _isPageTwo,
      child: BottomNavigationBar(
        currentIndex: _bottomBarIndex,
        onTap: (value) {
          _bottomBarIndex = value;
          switch (value) {
            case 0:
              _isPageTwo = false;
              break;
            case 1:
              // locking it here as soon as user taps this option
              _isPageTwo = true;
              break;
            case 2:
              _isPageTwo = false;
              break;

            default:
              _isPageTwo = false;
          }
          setState(() {});

          // unlocking it here after 3000 ms
          Timer(Duration(milliseconds: _activateTime), (){
            setState(() {
              _isPageTwo = false;
            });
          });
        },
        items: [
          BottomNavigationBarItem(
            icon: new Icon(Icons.home),
            title: Text(
              '',
              style: TextStyle(fontWeight: FontWeight.bold, height: 0.0),
            ),
          ),
          BottomNavigationBarItem(
            icon: new Icon(Icons.location_on),
            title: Text(
              '',
              style: TextStyle(fontWeight: FontWeight.bold, height: 0.0),
            ),
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.event_note),
            title: Text(
              '',
              style: TextStyle(fontWeight: FontWeight.bold, height: 0.0),
            ),
          )
        ],
      ),
    ),
    body: callPage(_bottomBarIndex),
  );
}

来源和更多信息-https://vsupalov.com/docker-build-time-env-values/

答案 1 :(得分:0)

您处于正确的轨道上,您必须通过CMD或ENTRYPOINT处理此问题,因为您希望它是动态的并从现有数据派生。具体情况取决于您的容器和用例。