如何使用 bitbucket 管道部署 django 应用程序

发布于 2025-01-10 19:07:45 字数 1374 浏览 0 评论 0原文

我想将使用 BitBucket 管道进行 Docker 化的 Django 应用程序部署到 AWS EC2 实例。如何使用 BitBucket 管道部署到 EC2?

docker-compose.yml

version: "3.8"
   
services:
  db:
    container_name: db
    image: "postgres"
    restart: always
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - dev.env
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=POSTGRES_DB
      - POSTGRES_USER=POSTGRES_USER
      - POSTGRES_PASSWORD=POSTGRES_PASSWORD

  app:
    container_name: app
    build: 
      context: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./core:/app
      - ./data/web:/vol/web
    env_file:
      - dev.env
    ports:
      - "8000:8000"
    depends_on:
      - db

volumes:
  postgres_data:

Dockerfile

FROM python:3
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# COPY ./core /app

WORKDIR /app
EXPOSE 8000

COPY ./core/ /app/
COPY ./scripts /scripts

RUN pip install --upgrade pip
COPY requirements.txt /app/
RUN pip install -r requirements.txt && \
    adduser --disabled-password --no-create-home app && \
    mkdir -p /vol/web/static && \
    mkdir -p /vol/web/media && \
    chown -R app:app /vol && \
    chmod -R 755 /vol && \
    chmod -R +x /scripts

USER app

CMD ["/scripts/run.sh"]

I want to deploy my Django app which is dockerized using BitBucket pipelines to AWS EC2 instance. How can I deploy to EC2 using BitBucket pipelines?

docker-compose.yml

version: "3.8"
   
services:
  db:
    container_name: db
    image: "postgres"
    restart: always
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - dev.env
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=POSTGRES_DB
      - POSTGRES_USER=POSTGRES_USER
      - POSTGRES_PASSWORD=POSTGRES_PASSWORD

  app:
    container_name: app
    build: 
      context: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./core:/app
      - ./data/web:/vol/web
    env_file:
      - dev.env
    ports:
      - "8000:8000"
    depends_on:
      - db

volumes:
  postgres_data:

Dockerfile

FROM python:3
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# COPY ./core /app

WORKDIR /app
EXPOSE 8000

COPY ./core/ /app/
COPY ./scripts /scripts

RUN pip install --upgrade pip
COPY requirements.txt /app/
RUN pip install -r requirements.txt && \
    adduser --disabled-password --no-create-home app && \
    mkdir -p /vol/web/static && \
    mkdir -p /vol/web/media && \
    chown -R app:app /vol && \
    chmod -R 755 /vol && \
    chmod -R +x /scripts

USER app

CMD ["/scripts/run.sh"]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文