1
回答
docker创建镜像遇到问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

在创建docker镜像时,遇到了以下问题:
dockerfile文件:

FROM centos
MAINTAINER pengji jipeng92@gmail.com
WORKDIR /root
COPY MySQL-5.6.26 /mysql
RUN yum update
RUN yum  -y install java-1.8.0-openjdk wget httpd php php-mysqlnd /mysql/*
RUN mysql_install_db --user=mysql
ENV MYSQL_ROOT_PASSWORD=root
ENV MYCAT_USER mycat
ENV MYCAT_PASS mycat
RUN wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.64/bin/apache-tomcat-7.0.64.tar.gz
RUN tar xvf apache-tomcat-7.0.64.tar.gz -C /usr/local/ && mv /usr/local/apache-tomcat-7.0.64/ /usr/local/tomcat
RUN wget http://code.taobao.org/svn/openclouddb/downloads/old/MyCat-Sever-1.2/Mycat-server-1.2-GA-linux.tar.gz
RUN mkdir /usr/local/mycat && tar xvf Mycat-server-1.2-GA-linux.tar.gz -C /usr/local/mycat && useradd mycat && \
    chown -R mycat.mycat /usr/local/mycat && chmod a+x /usr/local/mycat/bin/*
EXPOSE 8080 8066 9066
COPY /home/jipeng/dockerfiles/dataguru/java_tomcat_mysql/startup.sh /root/startup.sh
RUN chmod a+x /root/startup.sh
ENTRYPOINT /root/startup.sh

创建过程如下:

[jipeng@master java_tomcat_mysql]$ docker build -t pengji/mycat .         
Sending build context to Docker daemon   317 MB
Step 0 : FROM centos
 ---> bb3d629a7cbc
Step 1 : MAINTAINER pengji jipeng92@gmail.com
 ---> Using cache
 ---> cdbbb4de4d8e
Step 2 : WORKDIR /root
 ---> Using cache
 ---> 6d6a40194219
Step 3 : COPY MySQL-5.6.26 /mysql
 ---> Using cache
 ---> 7cfa1ec8c6b9
Step 4 : RUN yum update
 ---> Running in fc44891ca20a
Loaded plugins: fastestmirror, ovl


 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Disable the repository, so yum won't use it by default. Yum will then
        just ignore the repository until you permanently enable it again or use
        --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>

     4. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: base/7/x86_64

就是在容器内运行yum命令的时候,没有成功,这个问题该怎么解决?

举报
jappro
发帖于2年前 1回/981阅
共有1个答案 最后回答: 2年前

这个报错只是说有一个仓库没连上而已。

但是这个Dockerfile实在是一种十分糟糕的体验,会让容器变得巨大无比(centos根本不适合做基础镜像,而且这种COPY进去一堆东西的方式实在不符合docker的设计)。建议好好学学官方文档中的最佳实践部分。

--- 共有 2 条评论 ---
Feng_Yu回复 @jappro : 不需要设置仓库,你的几个依赖官方都有镜像,直接通过docker-compose的形式组合起来使用就行了。这才是符合docker推荐的方案 2年前 回复
jappro那该怎么设置 仓库? 2年前 回复
顶部