기존 Apache/php 사이트를 도커로 마이그레이션하려고하고 사이트 현지화에 문제가 있습니다. 코드를 살펴보면, 문제는 setLocale이 Docker 설치시 false를 반환한다는 것입니다 (기존 사이트에서는 true). 다음은 기존 사이트에서 제대로 실행되고 Docker 설치에 실패하는 PHP 테스트입니다.php on docker : setLocale 사용
FROM php:5-apache
RUN apt-get update && apt-get install -y locales && apt-get clean
RUN locale-gen fr_FR && locale-gen zh_TW && locale-gen tr_TR && locale-gen ru_R$
RUN docker-php-ext-install gettext
RUN a2enmod rewrite && a2enmod headers
내가 잘못 뭐하는 거지 : 여기
<?php
$locale = "fr_FR";
putenv("LC_ALL=$locale");
$ok = setlocale(LC_ALL, $locale);
if ($ok) {
echo "success";
} else {
echo "failure";
}
?>
내 도커 파일입니다?
--- 편집 ---
파치 Gortázar 나에게 여기 :-) 올바른 방향을 제공하면 더 로케일을해야하는 경우가있을 것이다 고정 된 고정 표시기 파일
FROM php:5-apache
RUN apt-get update && apt-get install -y locales && apt-get clean
RUN sed -i -e 's/# fr_FR ISO-8859-1/fr_FR ISO-8859-1/' /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales
RUN docker-php-ext-install gettext
RUN a2enmod rewrite && a2enmod headers
입니다 모든위한 라인
sed -i -e 's/# locale/locale/' /etc/locale.gen && \
을 컨테이너에 /etc.locale.gen을보고 추가하면 (# 로케일/EC에서 줄의 내용을 가정 할 필요가 로케일3210 tc/locale.gen에 필요한 로케일 포함).
감사합니다. 당신은 나에게 올바른 방향을 제시했습니다. locale-gen이 작동하지 않지만 spkg-reconfigure 로케일이 속임수였습니다 (내 질문에 편집 참조). LC_ALL은 php 예제에서와 같이 PHP 스크립트에서 설정해야합니다. –
Thx, nice solution ... – quexer69
php : * - apache 이미지의 경우 locale-gen에 의해 로케일을 생성 할 수없는 것 같지만 /etc/locales.gen 파일을 편집 한 다음 locale-gen을 실행해야합니다 –
monofone