X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=docker%2FKeystone%2FDockerfile;h=b429237db707cbdfd722c0f62ecf94ae3e41ed4a;hb=HEAD;hp=2030aa5165c6c5ea32893058b0a8133909c03e9d;hpb=33205b2d01d9991e01eff47d817afcf9fc4634dd;p=osm%2Fdevops.git diff --git a/docker/Keystone/Dockerfile b/docker/Keystone/Dockerfile index 2030aa51..b00b3848 100644 --- a/docker/Keystone/Dockerfile +++ b/docker/Keystone/Dockerfile @@ -1,34 +1,127 @@ -FROM ubuntu:16.04 +####################################################################################### +# Copyright ETSI Contributors and Others. +# +# 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. +####################################################################################### +FROM ubuntu:22.04 -LABEL Maintainer="esousa@whitestack.com" \ - Description="Openstack Keystone Instance" \ - Version="1.0" \ - Author="Eduardo Sousa" +ARG APT_PROXY +RUN if [ ! -z $APT_PROXY ] ; then \ + echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/proxy.conf ;\ + echo "Acquire::https::Proxy \"$APT_PROXY\";" >> /etc/apt/apt.conf.d/proxy.conf ;\ + fi EXPOSE 5000 -WORKDIR /keystone +WORKDIR /app -COPY scripts/start.sh /keystone/start.sh +COPY scripts/start.sh /app/start.sh -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get autoremove -y && \ - apt-get install -y software-properties-common && \ - add-apt-repository -y cloud-archive:queens && \ - apt-get update && apt dist-upgrade -y && \ - apt-get install -y python-openstackclient keystone apache2 libapache2-mod-wsgi net-tools mysql-client && \ +RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ + DEBIAN_FRONTEND=noninteractive apt-get autoremove -y && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common && \ + add-apt-repository -y cloud-archive:antelope && \ + DEBIAN_FRONTEND=noninteractive apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + apache2=2.4.* \ + keystone=2:23.0.* \ + libapache2-mod-wsgi-py3=4.9.* \ + python3-pip=22.0.* \ + build-essential=12.9* \ + python3-dev=3.10.* \ + libldap2-dev=2.5.* \ + libsasl2-dev=2.1.* \ + libssl-dev=3.0.* \ + libffi-dev=3.4* \ + libxml2-dev=2.9.* \ + libxslt1-dev=1.1.* \ + zlib1g-dev=1:1.2.* \ + ldap-utils=2.5.* \ + curl=7.81.* \ + net-tools=1.60* \ + mysql-client=8.0.* \ + dnsutils=1:9.18.* && \ rm -rf /var/lib/apt/lists/* && \ chmod +x start.sh +RUN pip3 install python-ldap==3.2.0 ldappool==3.0.0 python-openstackclient==6.2.0 + +# Creating the user for the app +RUN groupadd -g 1000 appuser && \ + useradd -u 1000 -g 1000 -d /app appuser && \ + usermod -a -G keystone appuser && \ + usermod -a -G adm appuser && \ + chown -R appuser:appuser /app && \ + chown root:keystone /etc/keystone && \ + chmod 770 /etc/keystone && \ + chown root:keystone /etc/ssl/certs && \ + chmod 770 /etc/ssl/certs && \ + chown root:keystone /etc/apache2/apache2.conf && \ + chmod 664 /etc/apache2/apache2.conf && \ + sed -i 's/Listen 80/Listen 8080/g' /etc/apache2/ports.conf && \ + chown root:keystone /var/spool && \ + chmod 775 /var/spool && \ + chmod 770 /var/log/apache2 && \ + chmod 660 /var/log/apache2/* && \ + chmod 770 /var/log/keystone && \ + chown root:keystone /var/run/apache2 && \ + chmod 775 /var/run/apache2 && \ + mkdir -p /etc/sudoers.d && \ + echo "%appuser ALL= NOPASSWD: /sbin/service apache2 *" > /etc/sudoers.d/appuser + +USER appuser + # database ENV DB_HOST keystone-db ENV DB_PORT 3306 ENV ROOT_DB_USER root ENV ROOT_DB_PASSWORD admin -# keystone ENV KEYSTONE_DB_PASSWORD admin +# keystone +ENV REGION_ID RegionOne +ENV KEYSTONE_HOST keystone +# admin user +ENV ADMIN_USERNAME admin ENV ADMIN_PASSWORD admin -ENV NBI_PASSWORD nbi +ENV ADMIN_PROJECT admin +# nbi service user +ENV SERVICE_USERNAME nbi +ENV SERVICE_PASSWORD nbi +ENV SERVICE_PROJECT service +# ldap +# ENV LDAP_AUTHENTICATION_DOMAIN_NAME no default +# ENV LDAP_URL ldap://localhost +# ENV LDAP_BIND_USER no default +# ENV LDAP_BIND_PASSWORD no default +# ENV LDAP_CHASE_REFERRALS no default +# ENV LDAP_PAGE_SIZE 0 +# ENV LDAP_USER_TREE_DN no default +# ENV LDAP_USER_OBJECTCLASS inetOrgPerson +# ENV LDAP_USER_ID_ATTRIBUTE cn +# ENV LDAP_USER_NAME_ATTRIBUTE sn +# ENV LDAP_USER_PASS_ATTRIBUTE userPassword +# ENV LDAP_USER_FILTER no default +# ENV LDAP_USER_ENABLED_ATTRIBUTE enabled +# ENV LDAP_USER_ENABLED_MASK 0 +# ENV LDAP_USER_ENABLED_DEFAULT true +# ENV LDAP_USER_ENABLED_INVERT false +# ENV LDAP_GROUP_OBJECTCLASS groupOfNames +# ENV LDAP_GROUP_TREE_DN no default +# ENV LDAP_USE_STARTTLS false +# ENV LDAP_TLS_CACERT_BASE64 no default +# ENV LDAP_TLS_REQ_CERT demand -ENTRYPOINT ./start.sh +ENTRYPOINT ["./start.sh"]