在Ubuntu docker容器中设置PATH变量的正确方法

时间:2016-11-19 19:00:52

标签: ubuntu docker environment-variables

我有一个基于Ubuntu 16.04的容器,并在/opt/bin中安装了一些自定义内容。

现在我想将/opt/bin添加到$PATH。但是,无论我尝试什么,在Docker容器重启后路径变量都不可用。

到目前为止,我尝试添加

export PATH=$PATH:/opt/bin

/etc/profile/etc/profile.d/myvars.sh

添加路径的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可能需要更新$ HOME目录(〜/ .bashrc )中的 .bashrc 文件,而不是 / etc / profile 或< EM> /etc/profile.d/myvars.sh

PATH=$PATH:/opt/bin

要永久设置它,系统范围(所有用户,所有进程)在/ etc / environment

中设置变量
#include <iostream>
#include <fstream>
//#define MAX_CHARS_PER_LINE = 512;
//#define MAX_TOKENS_PER_LINE = 5;
using namespace std;
char stringToken(char* input_string);
int main(int argc, char* argv[])
{
    char input_string[512];
    ifstream infile;
    infile.open(argv[1]);
    while(!infile.eof())
    {
        infile.getline(input_string, 512);
        cout << "Main line: " << input_string << endl;
        stringToken(input_string);
    }
    infile.close();
    return 0;
}
char stringToken(char* input_string)
{
    //char* word;
    //cout << "String token function: " << input_string << endl;
    /*while(input_string >> word)
    {
        cout << word << endl;
    }*/

    char *tempone;
    char *temptwo[5];

    int ii=0,
        jj=0;
    while(input_string[ii] != '\0' && jj<5)
    {
        if((int)input_string[ii]!= 32 && (int)input_string[ii]!= 9 && (int)input_string[ii] != 44)
        {
            tempone[ii]=input_string[ii];
            //cout << "\n\nindiv char" << input_string[ii] << "\t\t" << (int)input_string[ii] << "\n\n";
        }
        else
        {
            temptwo[jj]=tempone;
            jj++;
            //testing
            cout << temptwo << endl;
        }
        ii++;

    }



    return 0;
}