9ad190a7c8
The new Ubuntu base image we use does not ship with any locales
or locale configuration. A fix[1] attempted to remedy this by
copying the default locale configuration from the host, but it
is not a valid fix since the locale from the host is not present
or generated in the container cache. This causes things to break
on the system when valid locales are used, such as database
systems[2].
Instead, to prepare locales in Ubuntu[3], we should install the
locales package and provide a list of valid locales to prep
the base image. It is not necessary to copy /etc/default/locale
from the system. The first locale provided will be used as
the system's base locale by running 'update-locale' which
builds /etc/default/locale.
[1] e62de979cb
[2] http://paste.openstack.org/show/719241/
[3] https://www.thomas-krenn.com/en/wiki/Configure_Locales_in_Ubuntu#No_locale_set
Change-Id: Iaa5351777d7db464e8a897fdf33c0f440bfa601b
49 lines
1.5 KiB
Django/Jinja
49 lines
1.5 KiB
Django/Jinja
#!/usr/bin/env bash
|
|
set -e -x
|
|
|
|
{{ lxc_cache_prep_pre_commands }}
|
|
|
|
{% include 'templates/prep-scripts/_container_sys_setup.sh.j2' %}
|
|
|
|
apt-key add /root/repo.keys
|
|
rm /root/repo.keys
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get remove -y --purge snap* lxc* lxd* resolvconf* || true
|
|
|
|
# Update base distribution
|
|
apt-get update
|
|
apt-get upgrade -y
|
|
apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes {{ lxc_cache_distro_packages | join(' ') }}
|
|
apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes
|
|
rm -f /usr/bin/python
|
|
rm /etc/machine-id || true
|
|
rm /var/lib/dbus/machine-id || true
|
|
touch /etc/machine-id
|
|
rm /etc/sysctl.d/* || true
|
|
echo '' > /etc/sysctl.conf
|
|
ln -s /usr/bin/python2.7 /usr/bin/python
|
|
mkdir -p /root/.ssh
|
|
chmod 700 /root/.ssh
|
|
userdel --force --remove ubuntu || true
|
|
apt-get clean
|
|
mkdir -p /var/backup
|
|
mkdir -p /etc/network/interfaces.d
|
|
chage -I -1 -d -1 -m 0 -M 99999 -E -1 root
|
|
for action in disable mask; do
|
|
systemctl ${action} resolvconf.service || true
|
|
systemctl ${action} systemd-networkd-resolvconf-update.path || true
|
|
systemctl ${action} systemd-networkd-resolvconf-update.service || true
|
|
done
|
|
|
|
{% for locale in lxc_cache_locales %}
|
|
locale-gen {{ locale }}
|
|
{% if loop.first | bool %}
|
|
update-locale LANG={{ locale }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
# Set the IP of the lxcbr0 interface as the DNS server
|
|
echo "nameserver {{ lxc_net_address }}" > /etc/resolv.conf
|
|
systemctl enable systemd-networkd
|
|
{{ lxc_cache_prep_post_commands }}
|