Я пытаюсь поместить мой API, созданный с помощью django-rest-framework, в контейнер докера.
Кажется, все работает, за исключением того, что я не могу получить доступ к своим статическим файлам.
Вот мой settings.py :
MEDIA_URL = '/uploads/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Мой urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
path('api/bookmakers/', include('bookmakers.urls')),
path('api/pronostics/', include('pronostics.urls')),
path('api/', include('authentication.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Мой Dockerfile
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
&& localedef -i fr_FR -c -f UTF-8 -A /usr/share/locale/locale.alias fr_FR.UTF-8
ENV LANG fr_FR.UTF-8
ENV LANGUAGE fr_FR
ENV LC_ALL fr_FR.UTF-8
RUN python --version
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ADD . /code/
COPY docker-entrypoint.sh /code/
ENTRYPOINT ["/code/docker-entrypoint.sh"]
И, наконец, мой docker-compose.yml
version: '3.1'
services:
db:
image: postgres
container_name: nyl2pronos-db
restart: always
environment:
POSTGRES_PASSWORD: password
POSTGRES_DB: nyl2pronos
website:
container_name: nyl2pronos-website
image: nyl2pronos-website
build:
context: nyl2pronos_webapp
dockerfile: Dockerfile
ports:
- 3000:80
api:
container_name: nyl2pronos-api
build:
context: nyl2pronos_api
dockerfile: Dockerfile
image: nyl2pronos-api
restart: always
ports:
- 8000:8000
depends_on:
- db
environment:
- DJANGO_PRODUCTION=1
Так что, как только я перехожу на URL: http://localhost:8000/admin/, Я могу войти, нонет css, потому что статические файлы не загружаются.
GET http://localhost:8000/static/admin/css/forms.css net::ERR_ABORTED 40
Если вы видите другую ошибку, не стесняйтесь, просто скажите мне.
Заранее спасибо!