flask - 为什么每次当我workdir所对应的文件的内容发生变化,要重新build images,然后生成container才会生效
大家讲道理
大家讲道理 2017-04-24 09:10:59
0
3
490

dockerfile没有改变,只是workdir所对应的容器外部的文件发生了改变

  1. 请问这是必须的么,如果是这样的话,是要用docker compose-up 自动简化这个过程?

  2. 如果不是必须的话,因为我的dockerfile的问题么?
    dockerfile如下:

    FROM ubuntu
    MAINTAINER Tarty.Phoenix <tartyphoenix@gmail.com>
    RUN apt-get update
    RUN apt-get install -y -q python-all python-pip libffi-dev
    RUN apt-get install -y -q python-dev build-essential
    ADD ./flask_pure/requirements.txt /tmp/requirements.txt
    RUN pip install -qr /tmp/requirements.txt
    
    ADD ./flask_pure /opt/flask_pure/
    WORKDIR /opt/flask_pure
    
    EXPOSE 80
    CMD ["python", "manage.py", "runserver"]
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(3)
巴扎黑
  1. Tout d'abord, le répertoire représenté par workdir est le répertoire dans le conteneur, pas l'hôte.

  2. Les modifications de contenu suivantes nécessitent la reconstruction de l'image

    • Dockerfile lui-même change

    • Modifications du fichier source pour les instructions COPIER/AJOUTER

  3. docker-compose prend en charge la reconstruction de l'image pendant le fonctionnement

    service:
        - build: <image_base_dir>
刘奇

Il y a un point dans votre question que je dois vous expliquer.
Après avoir créé et modifié le fichier docker, build crée une image (miroir), puis exécute une image pour générer un conteneur (conteneur). Ensuite, l'image et le conteneur ont une correspondance individuelle. Ensuite, lorsque vous modifiez le fichier docker et modifiez le répertoire de travail, le conteneur que vous créez entrera bien sûr dans le nouveau répertoire de travail par défaut. Par conséquent, le titre de votre question ne doit pas décrire une question, mais une description logique correcte.

迷茫

Votre compréhension de Docker est fausse. Ce que vous faites, c'est simplement regrouper le contenu d'un certain dossier dans une image.
Il est recommandé de comprendre le concept de volume VOLUME dans docker. Ce n'est qu'en spécifiant le paramètre -v lors du démarrage du conteneur ou en spécifiant le paramètre VOLUME dans docker-compose.yml que le conteneur peut monter un répertoire local.

Alors, comment distinguer si le conteneur doit être monté dans le répertoire local, d'après ce que je comprends, s'il est en statut de développement ou en production ?
Si vous êtes en phase de développement et que le code doit changer fréquemment, il est difficile d'accepter qu'à chaque fois que le code est modifié, il doive être reconditionné dans l'image.
Si vous êtes en production, imaginez qu'il y a autant d'images sur Docker Hub. Si ces images vous fournissent un environnement d'installation et un code source, vous devez alors spécifier manuellement le VOLUME pour monter le répertoire de code source, puis. start Le conteneur sera compilé et installé. Que pensez-vous de cette expérience ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!