Identify container through PS1 shell variable
As suggested it was created the variable KOLLA_SERVICE_NAME to identify the container service name through PS1 shell variable. This method it was previously discussed in IRC. https://goo.gl/k7AdEg The other option it was usage hostname param in kolla_docker, but currently docker does not support it due this issue: https://github.com/docker/compose/issues/2460 The final result is like this: $ docker exec -it heka /bin/bash (heka)[heka@kolla-control /]$ $ docker exec -it mariadb /bin/bash (mariadb)[mysql@kolla-control /]$ More details can be accessed through this link http://paste.openstack.org/show/493689/ Closes-Bug: #1557454 Change-Id: I6aab8d640a8ebb17baa9d6d4f1edd6e331674713
This commit is contained in:
parent
f0c18db2c1
commit
08b08c78b5
@ -477,8 +477,15 @@ class DockerWorker(object):
|
||||
|
||||
return self.dc.create_host_config(**options)
|
||||
|
||||
def _inject_env_var(self, environment_info):
|
||||
newenv = {
|
||||
'KOLLA_SERVICE_NAME': self.params.get('name').replace('_', '-')
|
||||
}
|
||||
environment_info.update(newenv)
|
||||
return environment_info
|
||||
|
||||
def _format_env_vars(self):
|
||||
env = self.params.get('environment')
|
||||
env = self._inject_env_var(self.params.get('environment'))
|
||||
return {k: "" if env[k] is None else env[k] for k in env}
|
||||
|
||||
def build_container_options(self):
|
||||
|
@ -10,6 +10,14 @@ ENV KOLLA_BASE_DISTRO {{ base_distro }}
|
||||
ENV KOLLA_INSTALL_TYPE {{ install_type }}
|
||||
ENV KOLLA_INSTALL_METATYPE {{ install_metatype }}
|
||||
|
||||
#### Customize PS1 to be used with bash shell
|
||||
COPY kolla_bashrc /tmp/
|
||||
RUN cat /tmp/kolla_bashrc >> /etc/skel/.bashrc
|
||||
RUN cat /tmp/kolla_bashrc >> /root/.bashrc
|
||||
|
||||
# PS1 var when used /bin/sh shell
|
||||
ENV PS1="$(tput bold)($(printenv KOLLA_SERVICE_NAME))$(tput sgr0)[$(id -un)@$(hostname -s) $(pwd)]$ "
|
||||
|
||||
# For RPM Variants, enable the correct repositories - this should all be done
|
||||
# in the base image so repos are consistent throughout the system. This also
|
||||
# enables to provide repo overrides at a later date in a simple fashion if we
|
||||
@ -17,6 +25,9 @@ ENV KOLLA_INSTALL_METATYPE {{ install_metatype }}
|
||||
|
||||
{% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %}
|
||||
|
||||
# Customize PS1 bash shell
|
||||
RUN cat /tmp/kolla_bashrc >> /etc/bashrc
|
||||
|
||||
#### BEGIN REPO ENABLEMENT
|
||||
# Turns on Elasticsearch repos
|
||||
COPY elasticsearch.yum.repo /etc/yum.repos.d/elasticsearch.repo
|
||||
@ -152,6 +163,9 @@ RUN yum -y install \
|
||||
{# endif for base_distro centos,fedora,oraclelinux,rhel #}
|
||||
{% elif base_distro in ['ubuntu', 'debian'] %}
|
||||
|
||||
# Customize PS1 bash shell
|
||||
RUN cat /tmp/kolla_bashrc >> /etc/bash.bashrc
|
||||
|
||||
# This will prevent questions from being asked during the install
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
@ -189,4 +203,6 @@ RUN touch /usr/local/bin/kolla_extend_start \
|
||||
&& chmod 440 /etc/sudoers \
|
||||
&& groupadd kolla
|
||||
|
||||
RUN rm -f /tmp/kolla_bashrc
|
||||
|
||||
CMD ["kolla_start"]
|
||||
|
6
docker/base/kolla_bashrc
Normal file
6
docker/base/kolla_bashrc
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
#### Custom data added by Kolla
|
||||
_KBOLD="\[$(tput bold)\]"
|
||||
_KRESET="\[$(tput sgr0)\]"
|
||||
|
||||
PS1="${_KBOLD}(${KOLLA_SERVICE_NAME})${_KRESET}[\u@\h \W]\\$ "
|
Loading…
Reference in New Issue
Block a user