Docker 컨테이너에 mysql 5.7을 설치하려고 하면 다음 오류가 발생합니다. 저는 도커와 컨테이너를 처음 사용합니다.
Step 16/23 : RUN apt-get install mysql-server-5.7
---> Running in 9624e9df68e7
Reading package lists...
Building dependency tree...
Reading state information...
Package mysql-server-5.7 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
mariadb-server-10.3
E: Package 'mysql-server-5.7' has no installation candidate
Service 'web' failed to build: The command '/bin/sh -c apt-get install mysql-server-5.7' returned a non-zero code: 100
ERROR: Job failed: exit status 1
내 도커 파일:
FROM ubuntu:latest
RUN DEBIAN_FRONTEND=noninteractive
RUN apt-get upgrade
RUN apt-get update
RUN apt-get install -y wget
RUN wget http://archive.ubuntu.com/ubuntu/pool/main/m/mysql-5.7/mysql-server-5.7_5.7.21-1ubuntu1_amd64.deb
RUN apt-get install -y nodejs
RUN apt-get install -y npm
RUN apt-get install -y prometheus
RUN apt-get install -y openjdk-8-jdk
RUN wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
RUN sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
RUN apt-get update
RUN apt-get install -y elasticsearch
RUN apt-get install -y mongodb
RUN apt-get install mysql-server-5.7
RUN mkdir -p -v /data/db
WORKDIR /home/ubuntu/Github-MICROSERVICE/
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 6001
CMD chown -R mysql:mysql /var/lib/mysql \
&& service mysql start \
&& mysql -ppassword -e "CREATE DATABASE IF NOT EXISTS ted;GRANT ALL PRIVILEGES on ted.* TO 'root'@'localhost' WITH GRANT OPTION; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';FLUSH PRIVILEGES;SET GLOBAL connect_timeout=28800;SET GLOBAL sql_mode='NO_ENGINE_SUBSTITUTION';" \
&& service prometheus start \
&& service mongodb start\
&& npm start
답변1
새 버전의 Ubuntu에 이전 버전의 Mysql을 설치하려고 합니다.
FROM ubuntu:latest
현재(2020년 8월) ubuntu:latest
이미지 태그는 의 동의어입니다 ubuntu:20.04
. 이는 Ubuntu의 새 버전마다 변경됩니다. Mysql 5.7이 포함된 마지막 Ubuntu 버전은 Ubuntu 18.04였습니다. 이봐https://packages.ubuntu.com/bionic/mysql-server-5.7.
여러 가지 옵션이 있습니다:
공식 mysql docker 이미지 사용
자신의 이미지를 전혀 스크롤할 필요가 없을 수도 있습니다. 귀하의 질문에서 명확하지 않습니다. mysql:5.7
따라서 도커 이미지 mysql:latest
(8.0.21) 를 사용하여 컨테이너를 실행할 수도 있습니다 .
최신 버전의 mysql을 사용하세요
dockerfile을 다음과 같이 변경하세요.
apt-get install mysql-server
최신 Ubuntu 버전에 대한 최신 Mysql 버전이 설치됩니다.
이전 버전의 우분투 사용
도커 파일을 다음으로 변경하십시오.
FROM ubuntu:1804