fix: 修复ubuntu镜像无zoneinfo导致启动失败问题

main
xadocker 2 years ago
parent 71f1b8fc75
commit ae50b4d346
  1. 31
      mysql-5.7.38/dockerfile.2image
  2. 3
      mysql-5.7.38/install-db.sh

@ -1,12 +1,10 @@
FROM ubuntu:20.10 as builder
FROM gitea.xadocker.cn/container-image/ubuntu-arm64:20.10 as builder
MAINTAINER 1793360097@qq.com
# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
RUN groupadd -r mysql && useradd -r -g mysql mysql && echo > /etc/apt/sources.list
COPY install-db.sh /usr/local/bin/
RUN bash /usr/local/bin/install-db.sh Modify_Source DB_Dependent
RUN bash /usr/local/bin/install-db.sh Install_Only_Database pwd \
&& rm -rf /usr/local/src/* \
&& rm -rf /usr/local/mysql/bin/{mysqltest_embedded,mysql_embedded,mysql_client_test_embedded} /usr/local/mysql/mysql-test
RUN bash /usr/local/bin/install-db.sh Install_Only_Database
RUN mkdir -p /etc/mysql/conf.d/ && echo '[mysqld]\nskip-host-cache\nskip-name-resolve' > /etc/mysql/conf.d/docker.cnf \
&& rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql/share /var/run/mysqld \
@ -14,13 +12,16 @@ RUN mkdir -p /etc/mysql/conf.d/ && echo '[mysqld]\nskip-host-cache\nskip-name-re
# ensure that /var/run/mysqld (used for socket and lock files) is writable regardless of the UID our mysqld instance ends up having at runtime
&& chmod 1777 /var/run/mysqld /var/lib/mysql
FROM ubuntu:20.10
COPY --from=builder /usr/local/mysql/* /usr/local/mysql
FROM gitea.xadocker.cn/container-image/ubuntu-arm64:20.10
COPY --from=builder /usr/local/mysql/ /usr/local/mysql/
RUN groupadd -r mysql && useradd -r -g mysql mysql && mkdir -p /var/lib/mysql/share /var/run/mysqld /docker-entrypoint-initdb.d && chown mysql:mysql -R /usr/local/mysql /var/lib/mysql /var/run/mysqld /docker-entrypoint-initdb.d
ENV MYSQL_MAJOR 5.7
ENV MYSQL_VERSION 5.7.38-ubuntu20.10
ENV GOSU_VERSION 1.14
COPY install-db.sh /usr/local/bin/
RUN bash /usr/local/bin/install-db.sh Modify_Source && ls -l /usr/local/mysql && ln -sf /usr/local/mysql/bin/* /usr/local/bin/ && ls -l /usr/local/bin \
&& apt-get update && apt-get install -y --no-install-recommends gnupg dirmngr wget curl tzdata libaio-dev numactl perl bzip2 openssl zstd xz-utils && rm -rf /var/lib/apt/lists/*
RUN set -eux; \
# TODO find a better userspace architecture detection method than querying the kernel
arch="$(uname -m)"; \
@ -29,17 +30,23 @@ RUN set -eux; \
x86_64) gosuArch='amd64' ;; \
*) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; \
esac; \
curl -fL -o /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch.asc"; \
# curl -fL -o /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch.asc"; \
curl -fL -o /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch"; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
# export GNUPGHOME="$(mktemp -d)"; \
# gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
# gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
# rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
chmod +x /usr/local/bin/gosu; \
gosu --version; \
gosu nobody true
VOLUME /var/lib/mysql
RUN mkdir -p /etc/mysql/conf.d/ && echo '[mysqld]\nskip-host-cache\nskip-name-resolve' > /etc/mysql/conf.d/docker.cnf \
&& rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql /var/run/mysqld \
&& chown -R mysql:mysql /var/lib/mysql /var/run/mysqld \
# ensure that /var/run/mysqld (used for socket and lock files) is writable regardless of the UID our mysqld instance ends up having at runtime
&& chmod 1777 /var/run/mysqld /var/lib/mysql
#VOLUME /var/lib/mysql
COPY docker-entrypoint.sh /usr/local/bin/
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"]

@ -429,7 +429,7 @@ DB_Dependent() {
apt-get --no-install-recommends install -y debian-keyring debian-archive-keyring build-essential gcc g++ make cmake
apt-get --no-install-recommends install -y autoconf automake wget openssl libssl-dev zlib1g zlib1g-dev libncurses5
apt-get --no-install-recommends install -y libncurses5-dev bison libaio-dev libtirpc-dev libsasl2-dev pkg-config
apt-get --no-install-recommends install -y libpcre2-dev libxml2-dev libtinfo-dev libnuma-dev gnutls-dev
apt-get --no-install-recommends install -y libpcre2-dev libxml2-dev libtinfo-dev libnuma-dev gnutls-dev tzdata
fi
}
@ -663,6 +663,7 @@ TempMycnf_Clean() {
if [ -s /tmp/.mysql.tmp ]; then
rm -f /tmp/.mysql.tmp
fi
rm -rf /usr/local/src/* /usr/local/mysql/bin/mysqltest_embedded /usr/local/mysql/bin/mysql_embedded /usr/local/mysql/bin/mysql_client_test_embedded /usr/local/mysql/mysql-test
}
Modify_Source()

Loading…
Cancel
Save