Merge branch 'alpine-image' into 'develop'
Based Docker image on alpine to have a smaller (and faster to build) image See merge request funkwhale/funkwhale!546
This commit is contained in:
commit
cf13a788f9
|
@ -1,25 +1,47 @@
|
|||
FROM python:3.6
|
||||
FROM alpine:3.8
|
||||
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
|
||||
# Requirements have to be pulled and installed here, otherwise caching won't work
|
||||
RUN echo 'deb http://httpredir.debian.org/debian/ jessie-backports main' > /etc/apt/sources.list.d/ffmpeg.list
|
||||
COPY ./requirements.apt /requirements.apt
|
||||
RUN apt-get update; \
|
||||
grep "^[^#;]" requirements.apt | \
|
||||
grep -Fv "python3-dev" | \
|
||||
xargs apt-get install -y --no-install-recommends; \
|
||||
rm -rf /usr/share/doc/* /usr/share/locale/*
|
||||
RUN \
|
||||
echo 'installing dependencies' && \
|
||||
apk add \
|
||||
bash \
|
||||
git \
|
||||
gettext \
|
||||
musl-dev \
|
||||
gcc \
|
||||
postgresql-dev \
|
||||
python3-dev \
|
||||
py3-psycopg2 \
|
||||
py3-pillow \
|
||||
libldap \
|
||||
ffmpeg \
|
||||
libpq \
|
||||
libmagic \
|
||||
libffi-dev \
|
||||
zlib-dev \
|
||||
openldap-dev && \
|
||||
\
|
||||
\
|
||||
ln -s /usr/bin/python3 /usr/bin/python
|
||||
|
||||
RUN mkdir /requirements
|
||||
COPY ./requirements/base.txt /requirements/base.txt
|
||||
RUN pip install -r /requirements/base.txt
|
||||
RUN \
|
||||
echo 'fixing requirements file for alpine' && \
|
||||
sed -i '/Pillow/d' /requirements/base.txt && \
|
||||
\
|
||||
\
|
||||
echo 'installing pip requirements' && \
|
||||
pip3 install --no-cache-dir --upgrade pip && \
|
||||
pip3 install --no-cache-dir setuptools wheel && \
|
||||
pip3 install --no-cache-dir -r /requirements/base.txt
|
||||
|
||||
COPY . /app
|
||||
|
||||
# Since youtube-dl code is updated fairly often, we split it here
|
||||
RUN pip install --upgrade youtube-dl
|
||||
|
||||
WORKDIR /app
|
||||
ARG install_dev_deps=0
|
||||
COPY ./requirements/*.txt /requirements/
|
||||
RUN \
|
||||
if [ "$install_dev_deps" = "1" ] ; then echo "Installing dev dependencies" && pip3 install --no-cache-dir -r /requirements/local.txt -r /requirements/test.txt ; else echo "Skipping dev deps installation" ; fi
|
||||
|
||||
ENTRYPOINT ["./compose/django/entrypoint.sh"]
|
||||
CMD ["./compose/django/daphne.sh"]
|
||||
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
set -e
|
||||
exec "$@"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
set -e
|
||||
# This entrypoint is used to play nicely with the current cookiecutter configuration.
|
||||
# Since docker-compose relies heavily on environment variables itself for configuration, we'd have to define multiple
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
FROM python:3.6
|
||||
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
|
||||
# Requirements have to be pulled and installed here, otherwise caching won't work
|
||||
RUN echo 'deb http://httpredir.debian.org/debian/ jessie-backports main' > /etc/apt/sources.list.d/ffmpeg.list
|
||||
COPY ./requirements.apt /requirements.apt
|
||||
RUN apt-get update; \
|
||||
grep "^[^#;]" requirements.apt | \
|
||||
grep -Fv "python3-dev" | \
|
||||
xargs apt-get install -y --no-install-recommends; \
|
||||
rm -rf /usr/share/doc/* /usr/share/locale/*
|
||||
|
||||
RUN mkdir /requirements
|
||||
COPY ./requirements/base.txt /requirements/base.txt
|
||||
RUN pip install -r /requirements/base.txt
|
||||
COPY ./requirements/local.txt /requirements/local.txt
|
||||
RUN pip install -r /requirements/local.txt
|
||||
COPY ./requirements/test.txt /requirements/test.txt
|
||||
RUN pip install -r /requirements/test.txt
|
||||
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
ENTRYPOINT ["compose/django/dev-entrypoint.sh"]
|
|
@ -0,0 +1 @@
|
|||
Based Docker image on alpine to have a smaller (and faster to build) image
|
52
dev.yml
52
dev.yml
|
@ -39,36 +39,16 @@ services:
|
|||
networks:
|
||||
- internal
|
||||
|
||||
celeryworker:
|
||||
env_file:
|
||||
- .env.dev
|
||||
- .env
|
||||
build:
|
||||
context: ./api
|
||||
dockerfile: docker/Dockerfile.test
|
||||
links:
|
||||
- postgres
|
||||
- redis
|
||||
command: celery -A funkwhale_api.taskapp worker -l debug -B
|
||||
environment:
|
||||
- "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
|
||||
- "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test"
|
||||
- "FUNKWHALE_HOSTNAME_PREFIX=${COMPOSE_PROJECT_NAME}"
|
||||
- "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL-http}"
|
||||
- "DATABASE_URL=postgresql://postgres@postgres/postgres"
|
||||
- "CACHE_URL=redis://redis:6379/0"
|
||||
volumes:
|
||||
- ./api:/app
|
||||
- "${MUSIC_DIRECTORY_PATH-./data/music}:/music:ro"
|
||||
networks:
|
||||
- internal
|
||||
api:
|
||||
env_file:
|
||||
- .env.dev
|
||||
- .env
|
||||
build:
|
||||
build: &backend
|
||||
context: ./api
|
||||
dockerfile: docker/Dockerfile.test
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
install_dev_deps: 1
|
||||
entrypoint: compose/django/dev-entrypoint.sh
|
||||
command: python /app/manage.py runserver 0.0.0.0:${FUNKWHALE_API_PORT-5000}
|
||||
volumes:
|
||||
- ./api:/app
|
||||
|
@ -87,6 +67,28 @@ services:
|
|||
- internal
|
||||
cap_add:
|
||||
- SYS_PTRACE
|
||||
|
||||
celeryworker:
|
||||
env_file:
|
||||
- .env.dev
|
||||
- .env
|
||||
build: *backend
|
||||
links:
|
||||
- postgres
|
||||
- redis
|
||||
command: celery -A funkwhale_api.taskapp worker -l debug -B
|
||||
environment:
|
||||
- "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
|
||||
- "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test"
|
||||
- "FUNKWHALE_HOSTNAME_PREFIX=${COMPOSE_PROJECT_NAME}"
|
||||
- "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL-http}"
|
||||
- "DATABASE_URL=postgresql://postgres@postgres/postgres"
|
||||
- "CACHE_URL=redis://redis:6379/0"
|
||||
volumes:
|
||||
- ./api:/app
|
||||
- "${MUSIC_DIRECTORY_PATH-./data/music}:/music:ro"
|
||||
networks:
|
||||
- internal
|
||||
nginx:
|
||||
command: /entrypoint.sh
|
||||
env_file:
|
||||
|
|
Loading…
Reference in New Issue