Dockerfile和docker-不使用新指令进行更新

时间:2016-02-05 18:46:16

标签: docker containers dockerfile docker-compose

当我尝试使用像这样的docker-compose构建容器时

FROM nginx

#Expose port 80
EXPOSE 80

COPY html /usr/share/nginx/test

#Start nginx server
RUN service nginx restart

当我的Dockerfile简单时,COPY指令不起作用 看起来像这样

docker-compose build --no-cache
docker-compose up -d

可能是什么问题?

2 个答案:

答案 0 :(得分:14)

似乎在使用 docker-compose 命令时,它会保存一个中间容器,它不会向您显示并不断重新运行,从而无法正确更新它。    可悲的是,关于这样的事情的文件很差。解决这个问题的方法是首先构建它,没有缓存,然后像这样构建它

private void button1_Click(object sender, EventArgs e)
{
    Form6 f6 = new Form6();
    f6.Show();
}

private void button3_Click(object sender, EventArgs e)
{
    Form3 createTable = new Form3();
    createTable.Show();         
}

public void fillDataGrid(String Eingabe)
{
    String tabelle = Eingabe;               
    String selectCommand = "select ID, VON, BIS, DAUER, KOMMENTAR from " + tabelle + ";";

    SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(selectCommand, sqlite_conn);
    DataSet ds = new DataSet();
    dataAdapter.Fill(ds);
    //dataGridView1.DataBindings.Clear();
    //dataGridView1.Columns.Clear(); 
    dataGridView1.AutoGenerateColumns = true;
    dataGridView1.DataSource = ds.Tables[0].DefaultView;
}

答案 1 :(得分:1)

我遇到了同样的问题,为我做的一个班轮是:

docker-compose up --build --remove-orphans --force-recreate

  • --build 完成大部分工作并触发构建。
  • 如果您更改了一项服务的名称,
  • --remove-orphans 会很有用。否则,您可能会收到一条警告,告诉您旧的、现在错误命名的服务悬而未决。
  • --force-recreate 有点激烈,但会强制重新创建容器。

参考:https://docs.docker.com/compose/reference/up/

警告我可以在我的项目中这样做,因为我正在玩弄非常小的容器图像。根据您的情况,每次重新创建所有内容都可能需要大量时间。