docker-compose up 重新构建不更新代码?

danshendog:问题是这样的,我用了 docker-compose 打包一个 Django Web 项目,分为两个容器:nginx 和 django(包含 uWSGI 和 django),第一次使用命令docker-compose up将项目构建好跑起来了,后来重新修改了一下 uWSGI 的配置文件 uwsgi.ini, 改了一些其中的配置,也修改了一些 Django 项目中的 Python 代码,然后执行docker-compose builddocker-compose up重新构建,但是构建完了之后运行还是老样子,和第一次构建起来的程序一样,没有发生任何修改。
使用docker exec -it bash进入 django 容器之后发现 uwsgi.ini 和修改过的 python 代码都没有改变,反复尝试过了下面几种方法:

  • 删除 docker 中所有相关的容器、镜像,重新构建,还是无效,代码和配置文件还是没变
  • 使用docker-compose build --no-cache重新构建,还是没变
  • 使用docker system prune -a删除所有 docker 镜像之后再重新构建,还是没变
  • 使用docker-compose up --force-recreate重新构建,还是没变

折腾了一个晚上,真的是要哭了。
附上我的两个 Dockerfile 和 docker-compose.yml:

version: '3'
services:

    nginx:
        container_name: nginx-container
        build: ./nginx
        restart: always
        ports:
            - "80:80"
            - "8080:8080"
        volumes:
            - ./nginx_log:/var/log/nginx
            - shared_data:/django_project
        depends_on:
            - django
        privileged: true  
        networks:   
            net-django:  
              ipv4_address: 10.127.2.3

    django:
        container_name: django-container
        build: ./django_project
        restart: always
        command: uwsgi --ini uwsgi_conf.ini
        ports:
            - "8111:8111"
        volumes:
            - ./uwsgi_log:/django_project/logs
            - shared_data:/django_project
        privileged: true  
        networks:   
            net-django:  
              ipv4_address: 10.127.2.2
volumes:
    shared_data:


networks:  
  net-django:
    ipam:
      config:
        - subnet: 10.127.2.0/24

django 的 Dockerfile:

FROM python:3
ENV PYTHONUNBUFFERED 1
ENV DJANGO_SECRET_KEY xxx
RUN mkdir /django_project
WORKDIR /django_project
ADD . /django_project
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
EXPOSE 8111

nginx 的 Dockerfile

FROM nginx:latest

COPY nginx.conf /etc/nginx/nginx.conf
COPY django_nginx.conf /etc/nginx/sites-available/

RUN mkdir -p /etc/nginx/sites-enabled/\
    && ln -s /etc/nginx/sites-available/django_nginx.conf /etc/nginx/sites-enabled/

CMD ["nginx", "-g", "daemon off;"]

按理说重新构建的话会将修改过的代码和配置文件通过ADD . /django_project重新放入容器啊,为什么就是不变呢?
有大佬赐教吗?

Ariver:并不会 build

Docker Compose在多阶段构建中覆盖了COPY - php

我的目标是在docker文件的一个阶段中获取php依赖项,然后将这些依赖项复制到下一阶段(vendor/ dir)。但是,一旦在docker-compose.yml中指定了覆盖COPY语句的卷,就好像从未发生过一样。docker-compose.ymlversion: "3" services: app: build: context: …

看来风向要变了,终于有公司敢不吹 docker 和微服务了《王者荣耀为什么不使用微服务架构?》

594duck:https://mp.weixin.qq.com/s/AivWpbLHl8-Qh_NWq5Cbrw我我实名反对无脑微服务快 4 年了。4 年里无数人教我做人的道理。但是没有一个说得出所谓维服务之解决了 ci/cd 的问题外什么问题。终于风向要变了。我曾经在某位阿里恰饭微服务大佬的群里和他们吵了三天最后被几个连班都没上过的门徒硬是辱骂出群。将来…

Docker PHP-APACHE容器全局设置ServerName指令 - php

当我尝试在docker上运行php:apache容器时收到此警告,请任何想法如何解决此问题。 AH00558:apache2:无法可靠地确定服务器的完全状态 限定域名,使用172.17.0.2。设置“服务器名称” 全局伪指令以禁止显示此消息AH00558:apache2:可以 使用以下方法不能可靠地确定服务器的标准域名: 172.17.0.2。全局设置'Se…

Nginx和PHP容器之间的Docker连接被拒绝 - php

我正在使用从源映像和nginx官方映像编译的php-fpm创建集群,但是当我尝试运行phpinfo()文件时,nginx返回以下错误:*5 connect() failed (111: Connection refused) while connecting to upstream, client: 172.18.0.1, server: localhost…

Django:使用contenttypes框架的一般关系示例? - python

我已经多次浏览了有关contenttypes框架的Django文档,但我对它的理解不足以在项目中实现泛型关系。我一直在寻找有关此事的在线示例或教程,但找不到一个。称我为哑巴,但在这方面我需要一些帮助(请不要仅通过链接到文档来回答问题)。基于在线资源的缺乏,我相信如果您用一个完整的例子来回答这个问题,您的答案可能是迄今为止有关django通用关系(奖金!)的最…