반응형
RockyLinux 기반 맞춤형 MariaDB 도커 이미지
테스트 목적으로 새로 출시된 Rocky Linux를 기반으로 맞춤형 MariaDB 도커 이미지를 구축하려고 합니다.하지만 systemd의 부재로 인해 서비스 운영, root password 설정, 데이터 가져오기 등의 초기 데이터베이스 스키마 준비가 복잡한 것 같습니다.python(해결 방법)을 통해 systemctl을 활성화해도 systemctl start mariadb를 만나면 빌드 프로세스가 중단됩니다.
도커 파일:
FROM rockylinux/rockylinux
# INT
RUN yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
RUN yum install supervisor -y
ADD ./assets/SYS/supervisor.conf /etc/supervisor.conf
# SYS
RUN yum install python2 -y
RUN ln -s /usr/bin/python2 /usr/bin/python
RUN unlink /usr/bin/systemctl
ADD ./assets/SYS/systemctl /usr/bin/systemctl
RUN chmod +x /usr/bin/systemctl
# DBS
RUN yum install mariadb-server -y
# Method 1
RUN systemctl start mariadb
# [ freezes the build process ]
# Method 2
RUN exec /usr/bin/mysqld_safe
# [ runs the service but there is a mysql.sock error ]
# Method 3
RUN exec /usr/libexec/mysqld --defaults-file=/etc/my.cnf --user=root
# [ does not run the service ]
RUN mysql_upgrade -u root --force
RUN mysql -u root -e 'DELETE FROM mysql.user WHERE User="";'
RUN mysql -u root -e 'DELETE FROM mysql.user WHERE User="root" AND Host NOT IN ("localhost", "127.0.0.1", "::1");'
RUN mysql -u root -e 'GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "";'
RUN mysql -u root -e 'DROP DATABASE IF EXISTS test;'
RUN mysql -u root -e 'DELETE FROM mysql.db WHERE Db="test" OR Db="test\\_%";'
RUN mysql -u root -e 'FLUSH PRIVILEGES;'
RUN mysql -u root -e 'CREATE DATABASE somedatabase;'
ADD ./assets/DBS/database.sql database.sql
RUN mysql -u root somedatabase < database.sql
RUN unlink database.sql
RUN mysqladmin password "somepassword"
RUN systemctl stop mariadb
EXPOSE 3306
CMD ["supervisord", "-c", "/etc/supervisor.conf"]
supervisor.conf
[program:mariadb]
command=/usr/bin/mysqld_safe --basedir=/usr
process_name=%(program_name)s_%(process_num)02d
numprocs=1
autostart=true
autorestart=false
startsecs=0
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
파이썬 해결책이 도커-시스템 ctl-교체 스크립트를 참조하는지 잘 모르겠습니다.그러면 단일 RUN이 서비스의 "시작"과 "정지"를 모두 필요로 한다는 문제만 남게 됩니다.
mysql에 대한 기본값을 보여줄 수 있는 작동 예제가 있습니다.https://github.com/gdraheim/docker-systemctl-images/blob/master/centos-lamp-stack.dockerfile
언급URL : https://stackoverflow.com/questions/69675021/custom-mariadb-docker-image-based-on-rockylinux
반응형
'programing' 카테고리의 다른 글
mariadb 10.5의 출력을 설명하는 행 섹션의 백분율의 의미 (0) | 2023.09.15 |
---|---|
값에 따라 테이블의 두 열을 "병합"하고 DateTime 유형 열에서 가장 최근 날짜를 선택하는 mysql 테이블 보기 만들기 (0) | 2023.09.15 |
프로세서의 워드 크기 확인 (0) | 2023.09.15 |
파일에 NS 로그인하는 방법 (0) | 2023.09.15 |
PowerShell 원격에서 "액세스 거부" 오류가 발생했습니다. (0) | 2023.09.10 |