无法运行python文件的容器

8i9zcol2  于 2023-04-10  发布在  Python
关注(0)|答案(1)|浏览(136)

我是docker新手,我一直在尝试创建5个容器:

  1. nginx
  2. db
    1.使用以下命令创建3个python应用示例:
    docker-compose up -d --build --scale app=3
    我学习了一些教程,成功地创建了这两个容器:
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS         PORTS                 NAMES
27532d44e591   nginx:latest   "/docker-entrypoint.…"   31 seconds ago   Up 3 seconds   0.0.0.0:80->80/tcp    whist-nginx-1
3873501f7cce   mysql          "docker-entrypoint.s…"   6 minutes ago    Up 6 minutes   3306/tcp, 33060/tcp   whist-db-1

但是由于某些原因,我的app.py示例的3个容器没有运行。我在做什么?
这是我的目录树:

Dockerfile:

FROM python:3.9                 

WORKDIR /app                     

COPY . /app                       

RUN pip install -r requirements.txt  

EXPOSE 80                        

CMD ["python", "app.py"]

requirements.txt:flask
docker-compose:

version: '3'
services:                                        
  nginx:                                          
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro     
    depends_on:                                    
      - app

  app:
    build:
      context: ./app
    ports:
      - "8000"
    volumes:
      - ./app_logs:/app/logs                     
  
  db: 
    image: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
    volumes:
      - ./db/data:/var/lib/mysql
      - ./db/logs:/var/log/mysql
volumes:
  app_logs:
  db_data:
  db_logs:

nginx.conf:

events {
    worker_connections 1000;
}

http {
    server {
        listen 80;

        location / {
            proxy_pass http://app:8000;
        }
    }
}
sr4lhrrt

sr4lhrrt1#

你自己的应用镜像有问题。你从它们自己的镜像构建nginxmysql,所以当然docker可以毫无问题地构建它们。要修复你的应用镜像,首先,你应该尝试如下操作:

  • 应用程序的结构
your-app
|____ app.py
|____ requirements.txt
|____ Dockerfile
  • app.py文件
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Docker!'
  • Dockerfile
FROM python:3.9

WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY . .

CMD ["python3", "-m" , "flask", "run"]

成功构建自己的应用映像后,您可以使用其他服务构建它。

相关问题