标签: docker-compose

使用Docker-Compose时如何执行Django数据库迁移?

我已经按照Docker站点上的Django Quick Start说明严格设置了Docker Django/PostgreSQL应用程序.

我第一次运行Django的manage.py migrate,使用该命令sudo docker-compose run web python manage.py migrate,它按预期工作.数据库是在Docker PostgreSQL容器内构建的.

Django应用程序本身的更改同样反映在Docker Django容器中,我保存它们的那一刻.这很棒!

但是如果我然后在Django中更改模型,并尝试更新Postgres数据库以匹配模型,则不会检测到任何更改,因此无论我运行多少次makemigrationsmigrate再次运行都不会发生迁移.

基本上,每次我更改Django模型时,我都必须删除Docker容器(使用sudo docker-compose rm)并重新启动新的迁移.

我仍然试图让我的头围绕Docker,并且有很多我不明白它是如何工作的,但是这个让我疯狂.为什么不迁移看到我的更改?我究竟做错了什么?

django docker docker-compose

72
推荐指数
7
解决办法
4万
查看次数

E:似乎没有安装gnupg,gnupg2和gnupg1,但此操作需要其中一个

我在windows 10 pro上安装了docker.我在git-bash中运行以下命令时遇到了问题.

docker-compose up -d --build

并得到以下错误.

E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
(23) Failed writing body
Error executing command, exiting
ERROR: Service 'web' failed to build: The command '/bin/sh -c curl -sL https://deb.nodesource.com/setup_8.x | bash' returned a non-zero code: 1
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢.提前致谢.

docker docker-compose

72
推荐指数
4
解决办法
4万
查看次数

docker撰写构建单个容器

使用Compose,如果我运行docker-compose build,它将重建所有容器:

> docker-compose build
Building elasticsearch
Step 1 : FROM elasticsearch:2.1
 ---> a05cc7ed3f32
Step 2 : RUN /usr/share/elasticsearch/bin/plugin install analysis-phonetic
 ---> Using cache
 ---> ec07bbdb8a18
Successfully built ec07bbdb8a18
Building search
Step 1 : FROM php:5.5.28-fpm
 ---> fcd24d1058c0
...
Run Code Online (Sandbox Code Playgroud)

即使使用缓存进行重建,也需要时间.所以我的问题是:

有没有办法只重建一个特定的容器?

docker docker-compose

70
推荐指数
3
解决办法
3万
查看次数

导入错误:无法从其危险中导入名称“json”

我正在尝试让 Flask 和 Docker 应用程序正常工作,但是当我尝试docker-compose up在 Visual Studio 终端中使用命令运行它时,它给了我一个名为ImportError: cannot import name 'json' from itsdangerous. 我试图寻找解决这个问题的可能解决方案,但到目前为止,这里或其他地方的解决方案并不多。我能找到的唯一两个解决方案是将 MarkupSafe 及其危险的当前安装更改为更高版本:https://serverfault.com/questions/1094062/from-itsdangerous-import-json-as-json-importerror-cannot- import-name-json-fr和 GitHub 上的另一个告诉我从本质上再次更改 MarkUpSafe 及其危险的安装https://github.com/aws/aws-sam-cli/issues/3661,我也尝试过命名为安装软件包的虚拟环境veganetworkscriptenv,但也失败了。我目前使用 Flask 2.0.0 和 Docker 5.0.0,错误发生在 vegamain.py 的第八行。

这是我尝试运行该程序时收到的完整导入错误:

veganetworkscript-backend-1  | Traceback (most recent call last):
veganetworkscript-backend-1  |   File "/app/vegamain.py", line 8, in <module>
veganetworkscript-backend-1  |     from flask import Flask
veganetworkscript-backend-1  |   File "/usr/local/lib/python3.9/site-packages/flask/__init__.py", line 19, in <module>
veganetworkscript-backend-1  |     from . import json
veganetworkscript-backend-1  |   File "/usr/local/lib/python3.9/site-packages/flask/json/__init__.py", …
Run Code Online (Sandbox Code Playgroud)

python flask docker docker-compose

70
推荐指数
7
解决办法
8万
查看次数

如何使用docker-compose运行查看日志输出?

当我使用时,docker-compose up我可以在我的docker-compose.yml文件中看到所有容器的日志.

但是,当我使用时,docker-compose run app我只看到控制台输出,app但没有任何app依赖的服务.如何查看其他服务的日志输出?

docker docker-compose

69
推荐指数
4
解决办法
6万
查看次数

Docker Compose - 在多个容器之间共享命名卷

我正在使用docker-compose和v3.我正在尝试在docker中安装一个卷:

./appdata:/appdata

我希望将其作为卷,然后从多个容器引用该卷.的卷配置参考仅示出了data-volume:作为命名体积,用没有值,因此它不会像以上.

services:

    nginx:
        build: ./nginx/
        ports:
            - 80:80
        links:
            - php
        volumes:
            - app-volume

    php:
        build: ./php/
        expose:
            - 9000
        volumes:
            - app-volume

volumes:
     app-volume: ./appdata:/appdata
Run Code Online (Sandbox Code Playgroud)

这给了我:

错误:在文件'./docker-compose.yml'中,卷'app-volume'必须是映射而不是字符串.

显然我知道我需要更改volumes键/值对,但我不知道如何更改它以便我可以在服务之间共享卷.

我也检查过,volumes_from但这实际上只允许从其他容器继承.我看到有人volumes_from在另一个包含他们想要的映射的容器上使用,但是command: true设置为容器从未实际运行,这对我来说就像是一个黑客.

我怎样才能做到这一点?


注意,我确实有以下工作:

nginx:
    volumes:
        - ./appdata:/appdata
php:
    volumes:
        - ./appdata:/appdata
Run Code Online (Sandbox Code Playgroud)

但这只是重复而且是我希望命名卷可以帮助我避免:-)

docker docker-compose

69
推荐指数
4
解决办法
5万
查看次数

如何在docker-compose中传递参数?

Docker 1.9允许将参数传递给dockerfile.请参阅链接:https://docs.docker.com/engine/reference/builder/#arg

如何在docker-compose.yml中传递相同的参数?
如果可能的话,请提供一个例子.

docker dockerfile docker-compose

68
推荐指数
5
解决办法
9万
查看次数

将AWS凭据传递给Docker容器的最佳方法是哪种?

我在Amazon EC2上运行docker-container.目前,我已将AWS Credentials添加到Dockerfile.你能告诉我最好的办法吗?

amazon-web-services docker docker-compose

68
推荐指数
5
解决办法
4万
查看次数

通过docker-compose为docker容器提供静态IP

我正在尝试为容器提供静态IP地址.我知道我必须创建一个自定义网络.我创建它,并且主机上的桥接接口(Ubuntu 16.x).容器从此子网获取IP,但不是我提供的静态IP.

这是我的docker-compose.yml:

version: '2'

services:
  mysql:
    container_name: mysql
    image: mysql:latest
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
    ports:
     - "3306:3306"
    networks:
     - vpcbr

  apigw-tomcat:
    container_name: apigw-tomcat
    build: tomcat/.
    ports:
     - "8080:8080"
     - "8009:8009"
    networks:
     - vpcbr
    depends_on:
     - mysql

networks:
  vpcbr:
    driver: bridge
    ipam:
     config:
       - subnet: 10.5.0.0/16
         gateway: 10.5.0.1
         aux_addresses:
          mysql: 10.5.0.5
          apigw-tomcat: 10.5.0.6
Run Code Online (Sandbox Code Playgroud)

容器得到10.5.0.2和10.5.0.3,而不是5和6.

docker docker-compose

66
推荐指数
3
解决办法
10万
查看次数

在Pycharm上通过docker-compose运行Python控制台

我在使用docker-compose通过远程python解释器运行pycharm时遇到了一些问题.一切都很好,除了Python控制台,当我按下运行按钮时它只显示以下消息:

"错误:无法从docker-compose输出中找到服务"web"的容器名称"

我真的不明白为什么它让我表明,如果我docker-compose.yml提供web服务.

有帮助吗?

编辑:

泊坞窗,compose.yml

version: '2'

volumes:
  dados:
    driver: local
  media:
    driver: local
  static:
    driver: local

services:
  beat:
    build: Docker/beat
    depends_on: 
      - web
      - worker
    restart: always
    volumes:
      - ./src:/app/src
  db:
    build: Docker/postgres
    ports:
      - 5433:5432
    restart: always
    volumes:
      - dados:/var/lib/postgresql/data
  jupyter:
    build: Docker/jupyter
    command: jupyter notebook
    depends_on: 
      - web
    ports:
      - 8888:8888
    volumes:
      - ./src:/app/src
  python:
    build:
      context: Docker/python
      args:
        REQUIREMENTS_ENV: 'dev'
    image: helpdesk/python:3.6
  redis:
    image: redis:3.2.6
    ports:
      - 6379:6379
    restart: always
  web: …
Run Code Online (Sandbox Code Playgroud)

python pycharm docker docker-compose

66
推荐指数
1
解决办法
2414
查看次数