【发布时间】:2021-12-25 17:22:37
【问题描述】:
我正在尝试将 Github.com 添加为此 docker 文件的 known_hosts 文件,但不知何故,我相信 www-data 无法访问 known_hosts 文件。下面的代码是完整的 docker 文件。具体的git错误是
执行 git clone --mirror 失败 --
主机密钥验证失败。 致命:无法从远程存储库读取。
请确保您拥有正确的访问权限。
并且存储库存在。
FROM php:7.4-fpm as base
ENV COMPOSER_HOME=/tmp/composer
ENV APCU_VERSION=5.1.18
RUN apt-get update && apt-get install -y --no-install-recommends gnupg \
netcat \
sudo \
libicu-dev \
libfreetype6-dev \
libjpeg-dev \
libpng-dev \
libsodium-dev \
libxml2-dev \
libxslt-dev \
libzip-dev \
rsync \
unzip \
git \
openssh-client \
;
RUN pecl install apcu-${APCU_VERSION}
RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg
RUN docker-php-ext-install -j "$(nproc)" \
bcmath \
gd \
intl \
mysqli \
opcache \
pdo_mysql \
sockets \
soap \
xsl \
zip \
;
RUN docker-php-ext-enable apcu
RUN echo "memory_limit=1G" >> /usr/local/etc/php/conf.d/zz-memory-limit-php.ini
RUN echo "apc.enable=1" >> /usr/local/etc/php/conf.d/zz-apcu.ini
RUN echo "apc.enable_cli=1" >> /usr/local/etc/php/conf.d/zz-apcu.ini
RUN echo "opcache.memory_consumption=512MB" >> /usr/local/etc/php/conf.d/zz-opcache.conf
RUN echo "opcache.max_accelerated_files=60000" >> /usr/local/etc/php/conf.d/zz-opcache.conf
RUN echo "opcache.consistency_checks=0" >> /usr/local/etc/php/conf.d/zz-opcache.conf
RUN echo "opcache.validate_timestamps=0" >> /usr/local/etc/php/conf.d/zz-opcache.conf
RUN echo "opcache.enable_cli=1" >> /usr/local/etc/php/conf.d/zz-opcache.conf
FROM base as build
RUN curl https://files.magerun.net/n98-magerun2.phar -o /usr/local/bin/magerun \
&& chmod 755 /usr/local/bin/magerun
RUN mkdir -p /root/.ssh && \
chmod 0700 /root/.ssh && \
ssh-keyscan -t rsa github.com >> /root/.ssh/known_hosts
USER www-data
WORKDIR /var/www/html
ARG COMPOSER_AUTH
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
COPY --chown=www-data composer.json composer.json
COPY --chown=www-data composer.lock composer.lock
RUN php -d memory_limit=2G $(which composer) install --no-progress --no-dev
COPY --chown=www-data app/etc/config.php app/etc/config.php
COPY --chown=www-data bin bin
FROM build as app
ENV MAGE_MODE=production
RUN php -d memory_limit=2G bin/magento setup:di:compile
RUN composer dump-autoload --optimize --apcu
RUN php -d memory_limit=2G bin/magento setup:static-content:deploy -f
RUN rm -rf /var/www/html/var/cache
RUN rm -rf /var/www/html/var/page_cache
RUN rm -rf /var/www/html/var/session
COPY --chown=www-data app/etc/env.docker.php app/etc/env.php
【问题讨论】:
-
你能让它使用 HTTPS 而不是 git+ssh 吗?更简单。
标签: docker dockerfile openssh