From 8798b62e9326d7e30edc60ee561bbb9334d3b111 Mon Sep 17 00:00:00 2001 From: dev-tsoni <62991760+dev-tsoni@users.noreply.github.com> Date: Fri, 19 Jun 2020 18:14:07 +0530 Subject: [PATCH] Fixes/docker setup (#3183) * Updated Dockerfile base image to bionic * Added volumes and updated elasticsearch's version * Removed unnecessary services --- Dockerfile | 30 ++++++++++++++-------- docker/common.yml | 20 ++++++++++++++- docker/docker-compose-dev.yml | 48 ++++------------------------------- 3 files changed, 44 insertions(+), 54 deletions(-) diff --git a/Dockerfile b/Dockerfile index b574acc487..5e0040200e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,17 @@ # import base image -FROM ubuntu:trusty +FROM ubuntu:bionic # install system-wide dependencies, # python3 and the build-time dependencies for c modules RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ python3 python3-dev python3-pip python3-lxml \ -build-essential libffi-dev git \ -libtiff5-dev libjpeg8-dev zlib1g-dev \ +build-essential libffi-dev git locales \ +libtiff5-dev libjpeg8-dev zlib1g-dev libmagic-dev \ libfreetype6-dev liblcms2-dev libwebp-dev \ curl libfontconfig nodejs npm nginx \ -libxml2-dev libxslt1-dev \ && echo "\ndaemon off;" >> /etc/nginx/nginx.conf \ -&& rm /etc/nginx/sites-enabled/default \ -&& ln --symbolic /usr/bin/nodejs /usr/bin/node +&& rm /etc/nginx/sites-enabled/default # Set the locale RUN locale-gen en_US.UTF-8 @@ -26,7 +24,6 @@ WORKDIR /opt/superdesk/ COPY ./docker/nginx.conf /etc/nginx/nginx.conf COPY ./docker/superdesk_vhost.conf /etc/nginx/sites-enabled/superdesk.conf COPY ./docker/start.sh /opt/superdesk/start.sh -CMD /opt/superdesk/start.sh # client ports EXPOSE 9000 @@ -41,16 +38,29 @@ EXPOSE 5400 ENV PYTHONUNBUFFERED 1 ENV C_FORCE_ROOT "False" ENV CELERYBEAT_SCHEDULE_FILENAME /tmp/celerybeatschedule.db +ENV TZ Europe/London + +RUN python3 -m pip install --upgrade pip setuptools wheel +RUN npm install -g n npm grunt-cli && n lts + +# install server dependencies +COPY ./server/requirements.txt /tmp/requirements.txt +RUN cd /tmp && python3 -m pip install -U -r /tmp/requirements.txt + +# install client dependencies +COPY ./client/package.json ./client/ +RUN cd ./client && npm install # install server COPY ./server /opt/superdesk -RUN pip3 install -U -r requirements.txt # install client COPY ./client /opt/superdesk/client/ -RUN npm install -g n npm grunt-cli && n lts -RUN cd ./client && npm install && grunt build + +RUN cd ./client && grunt build # copy git revision informations (used in "about" screen) COPY .git/HEAD /opt/superdesk/.git/ COPY .git/refs/ /opt/superdesk/.git/refs/ + +CMD /opt/superdesk/start.sh diff --git a/docker/common.yml b/docker/common.yml index 7210148b1c..85b55f964f 100644 --- a/docker/common.yml +++ b/docker/common.yml @@ -1,14 +1,32 @@ mongodb: image: mongo:3 container_name: mongodb + volumes: + - ../data/mongodb:/data/db redis: image: redis:3 container_name: redis + volumes: + - ../data/redis:/data elastic: - image: elasticsearch:2 + image: elasticsearch:7.7.1 container_name: elastic + environment: + - xpack.security.enabled=false + - discovery.type=single-node + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: + - IPC_LOCK + volumes: + - ../data/elastic:/usr/share/elasticsearch/data postfix: image: catatnight/postfix diff --git a/docker/docker-compose-dev.yml b/docker/docker-compose-dev.yml index 8b3fef4b8e..33222b2e90 100644 --- a/docker/docker-compose-dev.yml +++ b/docker/docker-compose-dev.yml @@ -1,10 +1,3 @@ -logstash: - extends: - file: common.yml - service: logstash - links: - - elastic - mongodb: extends: file: common.yml @@ -16,15 +9,8 @@ redis: extends: file: common.yml service: redis - -kibana: - extends: - file: common.yml - service: kibana - links: - - elastic ports: - - "5601:5601" + - "6379:6379" elastic: extends: @@ -33,11 +19,6 @@ elastic: ports: - "9200:9200" -postfix: - extends: - file: common.yml - service: postfix - superdesk: extends: file: common.yml @@ -46,14 +27,15 @@ superdesk: - mongodb - redis - elastic - - logstash - - postfix - - pubapi environment: - SUPERDESK_RELOAD=True - SUPERDESK_URL=http://localhost:5000/api - SUPERDESK_WS_URL=ws://localhost:5050 - SUPERDESK_CLIENT_URL=http://localhost:9000 + - MONGO_URI=mongodb://mongodb/superdesk + - PUBLICAPI_MONGO_URI=mongodb://mongodb/superdesk_pa + - LEGAL_ARCHIVE_URI=mongodb://mongodb/superdesk_la + - ARCHIVED_URI=mongodb://mongodb/superdesk_ar ports: - "5000:5000" - "5100:5100" @@ -66,23 +48,3 @@ superdesk: - ../client-core:/opt/superdesk/client-core/ - ./Procfile-dev:/opt/superdesk/Procfile - ./start-dev.sh:/opt/superdesk/start.sh - -pubapi: - extends: - file: common.yml - service: pubapi - links: - - mongodb - - redis - - elastic - - logstash - - postfix - environment: - - SUPERDESK_RELOAD=True - - SUPERDESK_URL=http://localhost:5000/api - - SUPERDESK_CLIENT_URL=http://localhost:9000 - volumes: - - ../superdesk-content-api:/opt/superdesk-content-api/ - #- ./Procfile:/opt/superdesk/Procfile - ports: - - "5050:5050"