fix: 修复ubuntu仓库源error,指定仓库源http://old-releases.ubuntu.com/ubuntu/

main
root 2 years ago
parent f4853e54ff
commit ae4cd5276e
  1. 62
      mysql-5.7.38/dockerfile.2image
  2. 12
      mysql-5.7.38/dockerfile.bin2image.ubuntu
  3. 6
      mysql-5.7.38/install-db.sh

@ -1,46 +1,44 @@
FROM mysql-bin:5.7.38-ubuntu FROM ubuntu: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 # 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 RUN groupadd -r mysql && useradd -r -g mysql mysql
COPY install-db.sh /usr/local/bin/
RUN bash /usr/local/bin/install-db.sh && 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 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 \
&& 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
FROM ubuntu: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
# add gosu for easy step-down from root ENV MYSQL_MAJOR 5.7
# https://github.com/tianon/gosu/releases ENV MYSQL_VERSION 5.7.38-ubuntu20.10
ENV GOSU_VERSION 1.14 ENV GOSU_VERSION 1.14
RUN set -eux; \ RUN set -eux; \
# TODO find a better userspace architecture detection method than querying the kernel # TODO find a better userspace architecture detection method than querying the kernel
arch="$(uname -m)"; \ arch="$(uname -m)"; \
case "$arch" in \ case "$arch" in \
aarch64) gosuArch='arm64' ;; \ aarch64) gosuArch='arm64' ;; \
x86_64) gosuArch='amd64' ;; \ x86_64) gosuArch='amd64' ;; \
*) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; \ *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; \
esac; \ 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"; \ curl -fL -o /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch"; \
export GNUPGHOME="$(mktemp -d)"; \ export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
chmod +x /usr/local/bin/gosu; \ chmod +x /usr/local/bin/gosu; \
gosu --version; \ gosu --version; \
gosu nobody true gosu nobody true
RUN yum install -y wget && mkdir /docker-entrypoint-initdb.d
COPY install-db.sh /usr/local/bin/
RUN bash /usr/local/bin/install-db.sh
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 VOLUME /var/lib/mysql
ENV MYSQL_MAJOR 5.7
ENV MYSQL_VERSION 5.7.40-1debian10
COPY docker-entrypoint.sh /usr/local/bin/ COPY docker-entrypoint.sh /usr/local/bin/
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"] ENTRYPOINT ["docker-entrypoint.sh"]
#CMD ["/bin/bash","-c","sleep 3600"]
EXPOSE 3306 33060 EXPOSE 3306 33060
CMD ["mysqld"] CMD ["mysqld"]

@ -1,13 +1,11 @@
FROM ubuntu:20.04 FROM ubuntu:20.10
MAINTAINER 1793360097@qq.com MAINTAINER 1793360097@qq.com
# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added # 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 && apt-get update && apt-get install -y --no-install-recommends gnupg dirmngr wget curl && rm -rf /var/lib/apt/lists/* && mkdir /docker-entrypoint-initdb.d RUN groupadd -r mysql && useradd -r -g mysql mysql
COPY install-db.sh /usr/local/bin/ COPY install-db.sh /usr/local/bin/
RUN bash /usr/local/bin/install-db.sh RUN bash /usr/local/bin/install-db.sh && 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 mkdir -p /etc/mysql/conf.d/ && echo '[mysqld]\nskip-host-cache\nskip-name-resolve' > /etc/mysql/conf.d/docker.cnf \ 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 \ && rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql/share /var/run/mysqld \
&& chown -R mysql:mysql /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 # 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 \ && chmod 1777 /var/run/mysqld /var/lib/mysql
&& rm -rf /usr/local/src/*

@ -668,6 +668,8 @@ Modify_Source()
RHEL_Modify_Source RHEL_Modify_Source
elif [ "${DISTRO}" = "Ubuntu" ]; then elif [ "${DISTRO}" = "Ubuntu" ]; then
Ubuntu_Modify_Source Ubuntu_Modify_Source
apt update -y
apt install -y wget
elif [ "${DISTRO}" = "CentOS" ]; then elif [ "${DISTRO}" = "CentOS" ]; then
CentOS6_Modify_Source CentOS6_Modify_Source
CentOS8_Modify_Source CentOS8_Modify_Source
@ -703,6 +705,7 @@ RHEL_Modify_Source()
Ubuntu_Modify_Source() Ubuntu_Modify_Source()
{ {
country=''
if [ "${country}" = "CN" ]; then if [ "${country}" = "CN" ]; then
OldReleasesURL='http://mirrors.aliyun.com/oldubuntu-releases/ubuntu/' OldReleasesURL='http://mirrors.aliyun.com/oldubuntu-releases/ubuntu/'
else else
@ -759,6 +762,8 @@ Ubuntu_Modify_Source()
CodeName='disco' CodeName='disco'
elif grep -Eqi "19.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^19.10'; then elif grep -Eqi "19.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^19.10'; then
CodeName='eoan' CodeName='eoan'
elif grep -Eqi "20.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^20.04'; then
CodeName='focal'
elif grep -Eqi "20.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^20.10'; then elif grep -Eqi "20.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^20.10'; then
CodeName='groovy' CodeName='groovy'
elif grep -Eqi "21.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^21.04'; then elif grep -Eqi "21.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^21.04'; then
@ -945,6 +950,7 @@ Install_Only_Database() {
echo "+-----------------------------------------------------------------------+" echo "+-----------------------------------------------------------------------+"
Get_Dist_Name Get_Dist_Name
Modify_Source
Check_DB Check_DB
if [ "${DB_Name}" != "None" ]; then if [ "${DB_Name}" != "None" ]; then
echo "You have install ${DB_Name}!" echo "You have install ${DB_Name}!"

Loading…
Cancel
Save