programing

MariaDB를 시작하고 센토스 기반 도커 이미지를 계속 실행하는 방법.

instargram 2023. 8. 10. 18:13
반응형

MariaDB를 시작하고 센토스 기반 도커 이미지를 계속 실행하는 방법.

저는 mariadb를 설치하고, mariadb를 시작하고, mariadb를 계속 실행할 도커 파일(base os는 Centos여야 함)을 만들려고 합니다.컨테이너 igitlab을 사용하여 통합 테스트(Java)를 실행할 수 있습니다.이것이 지금까지 제가 가지고 있는 것입니다.

FROM centos:7
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]

RUN rm /bin/sh && ln -s /bin/bash /bin/sh

# Install epel and java
RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel wget

ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk/

EXPOSE 8080
EXPOSE 3306

# install mariadb
RUN yum -y install mariadb
RUN yum -y install mariadb-server
RUN systemctl start mariadb
ENTRYPOINT tail -f /dev/null

D-Bus 연결에 실패했습니다.라는 오류가 표시됩니다.작업이 허용되지 않습니다.

다음과 같은 작업을 수행할 수 있습니다.

FROM centos/mariadb-102-centos7

USER root
# Install epel and java
RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel wget

ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk/

코드 폴더를 이 컨테이너에 마운트하고 도커 exec을 사용하여 실행할 수 있습니다.

그러나 두 개의 서로 다른 컨테이너를 사용하는 것이 좋습니다. 하나는 DB용이고 다른 하나는 코드용입니다.그런 다음 코드 컨테이너를 전달하여 db 컨테이너에 연결하는 데 필요한 변수를 전달할 수 있습니다.

systemd를 포함한 컨테이너에서 기본적으로 실행되는 것이 없으므로 systemd를 사용하여 mariadb를 시작할 수 없습니다.

만약 우리가 공식 mariadb 도커 파일을 참조한다면, 우리는 당신이 mariadb를 추가함으로써 시작할 수 있다는 것을 찾을 수 있습니다.CMD ["mysqld"]우리 도커 파일로.

당신은 또한 당신의 컨테이너에 mariadb를 설치해야 합니다.RUN yum -y mariadb-server mariadb-client기본적으로 설치되지 않기 때문에

언급URL : https://stackoverflow.com/questions/59274314/how-to-start-mariadb-and-keep-it-running-centos-based-docker-image

반응형