gpt4 book ai didi

docker - 如何启动MariaDB并保持其运行基于Centos的Docker镜像

转载 作者:行者123 更新时间:2023-12-02 19:53:22 25 4
gpt4 key购买 nike

我正在尝试创建一个docker文件(基本操作系统必须为Centos),该文件将安装mariadb,启动mariadb并保持mariadb运行。这样我就可以使用gitlab中的容器来运行集成测试(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/

您可以将代码文件夹安装到此容器中,然后使用docker exec执行它。

但是建议您使用两个不同的容器:一个用于数据库,另一个用于您的代码。然后,您可以将连接到db容器所需的env vars传递给代码容器。

关于docker - 如何启动MariaDB并保持其运行基于Centos的Docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59274314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com