我正在尝试使用运行mysql服务器的ubuntu映像来设置Dockerfile (我知道我应该使用mysql映像,但我需要这样做才能完成任务)。我在设计Dockerfile时遇到了很多麻烦。我的Dockerfile现在看起来是这样的:
FROM ubuntu:latest
EXPOSE 3306
VOLUME [ "/var/lib/mysql" ]
RUN apt update && \
apt install -y mysql-server && \
apt-get install -y gosu
ENV MYSQL_ROOT_PASSWORD=secret
COPY ./wordpress.sql /docker-entrypoint-initdb.d/
COPY ./docker-entrypoint.sh /usr/local/bin/
COPY ./entrypoint.sh /
RUN chmod +x entrypoint.sh && \
chmod +x /docker-entrypoint-initdb.d/wordpress.sql && \
chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD [ "mysqld" ]
(我运行docker build -t sql .
构建映像,运行docker run --name sql_cont -v sql_vol:/var/lib/mysql sql_img
运行容器)
我有一个文件夹,其中有docker-entrypoint.sh
文件和entrypoint.sh
文件,因为当我安装mysql-server时,默认情况下不会像使用mysql停靠文件那样创建这些文件。
我只需要一个来自ubuntu映像的Dockerfile,它运行mysql,只需要等待连接,所以,如果有人知道如何重构这个Dockerfile,或者给我答案,我会非常感激的。
发布于 2022-11-06 16:25:42
如果What is the difference between CMD and ENTRYPOINT in a Dockerfile?是正确的,CMD
中的参数将被传递给ENTRYPOINT
。不知道您的ENTRYPOINT
脚本,但我希望它忽略参数。
我建议:
/bin/sh -c
)
https://stackoverflow.com/questions/74337548
复制相似问题