X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fdevops.git;a=blobdiff_plain;f=docker%2Flight-ui%2FDockerfile;h=eee9416717a39a062ce14622348e4a2da800a68e;hp=5cf9aa70c8c583ac849eadbae09f602ef9a12bef;hb=c9bba307e009c836bee2584f623aea7598ca1015;hpb=89f2f421a741d0e3c56e3fb2deb304eacedb5a8f diff --git a/docker/light-ui/Dockerfile b/docker/light-ui/Dockerfile index 5cf9aa70..eee94167 100644 --- a/docker/light-ui/Dockerfile +++ b/docker/light-ui/Dockerfile @@ -1,32 +1,78 @@ -FROM ubuntu:16.04 +# Copyright 2019 ETSI +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. -WORKDIR /usr/src/app +FROM ubuntu:18.04 -RUN apt-get update && apt-get install -y npm git python-pip nginx supervisor -RUN npm install -g bower +#RUN apt-get update && apt-get install -y npm git python-pip nginx supervisor curl software-properties-common libssl-dev libmysqlclient-dev mysql-client +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y curl \ + software-properties-common \ + apt-transport-https \ + git \ + python-pip \ + nginx \ + supervisor \ + libmariadbclient-dev \ + mysql-client \ + libssl-dev \ + apt-utils \ + && curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ + && echo "deb https://deb.nodesource.com/node_10.x bionic main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && echo "deb-src https://deb.nodesource.com/node_10.x bionic main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs + +RUN node -v +RUN npm -v + +RUN echo "daemon off;" >> /etc/nginx/nginx.conf -ARG LWUI_VERSION= -RUN git clone https://osm.etsi.org/gerrit/osm/LW-UI /usr/src/app && echo LWUI_VERSION +ARG REPOSITORY_BASE=http://osm-download.etsi.org/repository/osm/debian +ARG RELEASE=ReleaseNINE-daily +ARG REPOSITORY_KEY=OSM%20ETSI%20Release%20Key.gpg +ARG REPOSITORY=testing +ARG LWUI_VERSION -RUN ln -s /usr/bin/nodejs /usr/bin/node -RUN bower install --allow-root +RUN curl ${REPOSITORY_BASE}/${RELEASE}/${REPOSITORY_KEY} | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - +RUN add-apt-repository -y "deb ${REPOSITORY_BASE}/${RELEASE} ${REPOSITORY} LW-UI" && apt-get update +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y osm-lightui${LWUI_VERSION} \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /usr/share/osm-lightui +RUN npm install -g npm@latest +RUN npm install +RUN mv node_modules ./static RUN pip install -r requirements.txt RUN pip install uwsgi -# -RUN echo "daemon off;" >> /etc/nginx/nginx.conf -RUN cp /usr/src/app/nginx-app.conf /etc/nginx/sites-available/default -RUN cp /usr/src/app/supervisor-app.conf /etc/supervisor/conf.d/ +RUN cp /usr/share/osm-lightui/nginx-app.conf /etc/nginx/sites-available/default +RUN cp /usr/share/osm-lightui/supervisor-app.conf /etc/supervisor/conf.d/ # delete the copy of the database inside the container (if exists) RUN rm -f db.sqlite3 ENV DJANGO_ENV=prod -RUN python manage.py makemigrations authosm -RUN python manage.py migrate +ENV OSM_SERVER=nbi +# ENV OSMUI_SQL_DATABASE_URI=mysql://root:secret@mysql:3306/lwui RUN python manage.py collectstatic --noinput - +RUN chmod +x /usr/share/osm-lightui/entrypoint.sh EXPOSE 80 -CMD ["supervisord", "-n"] +HEALTHCHECK --start-period=130s --interval=10s --timeout=5s --retries=12 \ + CMD curl --silent --fail localhost:80 || exit 1 + +CMD ["/usr/share/osm-lightui/entrypoint.sh"]