簡體   English   中英

Dockerfile Image命令'/ bin / sh -c apt-get install -y mysqld-server'返回了非零代碼:100

[英]Dockerfile Image The command '/bin/sh -c apt-get install -y mysqld-server' returned a non-zero code: 100

我想使用此規格制作docker映像:

  1. Ubuntu:16.04 /最新
  2. PHP 7.x
  3. nginx:最新的mySQL 5.x
  4. 暴露端口80和443
  5. 目錄/來源

可選的 :

  1. VIM
  2. PHP作曲家

我的Dockerfile:

# Download base image ubuntu 16.04
FROM ubuntu:16.04

# Update Ubuntu Software repository
RUN apt-get update

# Install PHP, nginx, mySQL
RUN apt-get install -y nginx php7.0-fpm && \
rm -rf /var/lib/apt/lists/*

# Install MySQL and set default root password
RUN echo 'mysql-server mysql-server/root_password  password mypassword' | debconf-set-selections
RUN echo 'mysql-server mysql-server/root_password_again password mypassword' | debconf-set-selections
RUN apt-get install -y mysql-server

# Define the ENV variable
ENV nginx_vhost /etc/nginx/sites-available/default
ENV php_conf /etc/php/7.0/fpm/php.ini
ENV nginx_conf /etc/nginx/nginx.conf

# Enable php-fpm on nginx virtualhost configuration
COPY default ${nginx_vhost}
RUN sed -i -e 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' ${php_conf} && \
echo "\ndaemon off;" >> ${nginx_conf}

RUN mkdir -p /run/php && \
chown -R www-data:www-data /var/www/html && \
chown -R www-data:www-data /run/php

# Volume configuration
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]

# Configure Services and Port
COPY start.sh /start.sh
CMD ["./start.sh"]

EXPOSE 80 443

構建它時收到此錯誤消息

Sending build context to Docker daemon 5.632 kB
Step 1 : FROM ubuntu:16.04
 ---> 2d696327ab2e
Step 2 : RUN apt-get update
 ---> Using cache
 ---> b58709c2b7b9
Step 3 : RUN apt-get install -y nginx php7.0-fpm &&     rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 3d58b4fac924
Step 4 : RUN echo 'mysql-server mysql-server/root_password  password mypassword' | debconf-set-selections
 ---> Using cache
 ---> 85256efe3bd3
Step 5 : RUN echo 'mysql-server mysql-server/root_password_again password mypassword' | debconf-set-selections
 ---> Using cache
 ---> d1f71eeacbe2
Step 6 : RUN apt-get install -y mysqld-server
 ---> Running in 9dba6ce0c59a
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package mysqld-server
The command '/bin/sh -c apt-get install -y mysqld-server' returned a non-zero code: 100

我該如何解決?

謝謝

您的問題是rm -rf /var/lib/apt/lists/* 您將刪除apt-get update獲取的列表。 然后,您嘗試使用apt安裝軟件包。 這將失敗。

您需要在安裝mysql-server的行后移動rm -rf /var/lib/apt/lists/

# Download base image ubuntu 16.04
FROM ubuntu:16.04

# Update Ubuntu Software repository
RUN apt-get update

# Install PHP, nginx, mySQL
RUN apt-get install -y nginx php7.0-fpm

# Install MySQL and set default root password
RUN echo 'mysql-server mysql-server/root_password  password mypassword' | debconf-set-selections
RUN echo 'mysql-server mysql-server/root_password_again password mypassword' | debconf-set-selections
RUN apt-get install -y mysql-server && rm -rf /var/lib/apt/lists/*

# Define the ENV variable
ENV nginx_vhost /etc/nginx/sites-available/default
ENV php_conf /etc/php/7.0/fpm/php.ini
ENV nginx_conf /etc/nginx/nginx.conf

# Enable php-fpm on nginx virtualhost configuration
COPY default ${nginx_vhost}
RUN sed -i -e 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' ${php_conf} && \
echo "\ndaemon off;" >> ${nginx_conf}

RUN mkdir -p /run/php && \
chown -R www-data:www-data /var/www/html && \
chown -R www-data:www-data /run/php

# Volume configuration
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]

# Configure Services and Port
COPY start.sh /start.sh
CMD ["./start.sh"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM