如何将Angular项目添加到Django和Docker
我想用Django项目添加到Docker的Angular 4项目? 我的文件结构看起来就是这样的: DockerContainer
:
Backend Dockerfile Frontend docker-compose.yml requirements.txt
我想在Frontend
目录下创buildAngular 4项目。 我可以使用ng new my-app
来做到这一点,但接下来我该怎么做? 这是我docker-compose.yml
:
version: '3' services: db: image: postgres django: build: . command: python3 Backend/manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db
Dockerfile
:
FROM python:3.6.1 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/
目前在主目录中的文件结构与您的build议看起来是这样的:
├── Backend │ ├── AI │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-36.pyc │ │ │ ├── settings.cpython-36.pyc │ │ │ ├── urls.cpython-36.pyc │ │ │ └── wsgi.cpython-36.pyc │ │ ├── settings.py │ │ ├── urls.py │ │ └── wsgi.py │ └── manage.py ├── Dockerfile ├── Frontend │ └── angularProject │ └── all files in my angular project ├── docker-compose.yml └── requirements.txt
Angular 4项目只是HTML和JavaScript(据我所知)。 一般来说,我们将构build应用程序,然后从Web服务器(例如Apache HTTPD的nginx)提供它。 我决定基于最近的Docker特性为多阶段构build做一个Angular 4 Docker镜像的例子。
这个例子是在https://gist.github.com/andyshinn/de65b71a7b50a0e5a73732c69f1a3d35 。 假设您的Angular 4应用程序代码根位于Frontend
,您可以将此Dockerfile
和nginx.conf
复制到Frontend
文件夹。 然后,你可以添加一个新的服务到你docker-compose.yml
来构build和运行它。 这是一个例子:
version: '3' services: db: image: postgres django: build: . command: python3 Backend/manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db angular: build: Frontend/angularProject ports: - "8010:80" depends_on: - django