嗨,我遇到了 docker 镜像的问题
这是后端的 Dockerfile
FROM ubuntu:18.04
# Install required packages
RUN apt-get update && apt-get install -y \
nano \
python3 \
python3-pip \
python3-dev \
default-libmysqlclient-dev \
build-essential \
git \
python3-venv \
mysql-client
RUN apt-get update \
&& apt-get install -y python3.6-dev \
&& apt-get install -y mysql-client \
&& apt-get install -y libmysqlclient-dev \
&& apt-get install -y libssl-dev
# Clone the git repository
RUN git clone https://github.com/peyyala7hills/new_chatapp /app
WORKDIR /app
# Copy settings.py to the appropriate location
RUN rm /app/fundoo/fundoo/settings.py
COPY settings.py /app/fundoo/fundoo/
# Set up Python virtual environment and install dependencies
RUN python3 -m venv venv
RUN . venv/bin/activate && pip3 install -r requirements.txt
RUN cd ./fundoo && pip3 install python-dotenv
# Create systemd service file
RUN echo '[Unit]\n\
Description=Chatapp Service\n\
After=network.target\n\
\n\
[Service]\n\
User=ubuntu\n\
Group=ubuntu\n\
WorkingDirectory=/app/fundoo\n\
ExecStart=/bin/bash -c "cd /app && source venv/bin/activate && cd /app/fundoo && /app/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:8000 fundoo.wsgi:application"\n\
\n\
[Install]\n\
WantedBy=multi-user.target' > /etc/systemd/system/chatapp.service
# Expose port 8000
EXPOSE 8000
# Start gunicorn server
CMD ["/bin/bash", "-c", "cd /app/fundoo && /app/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:8000 fundoo.wsgi:application"]
docker-compose.yml 文件
version: '3.9'
services:
database:
image: database:v1
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: chatapp
MYSQL_USER: chatapp
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
volumes:
- volumedb:/etc/mysql
- volumedb_data:/var/lib/mysql
networks:
- rajcharanmaster
backend:
image: backend:v3
ports:
- "8000:8000"
volumes:
- backdata:/etc
- backdata_config:/app
networks:
- rajcharanmaster
frontend:
image: frontend:v2
ports:
- "80:80"
depends_on:
- backend
volumes:
- frontdata:/etc
networks:
- rajcharanmaster
environment:
BACKEND_HOST: backend
DATABASE_HOST: database
networks:
rajcharanmaster:
driver: bridge
volumes:
backdata:
backdata_config:
frontdata:
volumedb:
volumedb_data:
当我使用上面的 dockerfile 构建映像时,它运行良好,但是当我尝试 docker-compose.yml 时,它运行不正常,我不知道为什么
谁能帮我解释一下吗
我期望 docker-compose run -d 必须工作并为前端、后端、数据库启动 3 个实例,但数据库和前端工作正常
仅后端出现问题
我在 dockerfile 中遇到 mysqlclient 问题,但在镜像或运行中它运行良好
能否请您粘贴一个错误。我怀疑可能是环境问题。 检查您是否通过环境变量将数据库端点传递到后端应用程序。