2017-03-16 6 views
2

Docker의 Compose 설정 (Drupal 용)에서 작동하도록 Docker의 Wordpress 비밀 예 (아래 링크)를 적용하려고합니다.Docker 17.03 비밀을 사용할 때 MySQL Docker 컨테이너가 MYSQL_ROOT_PASSWORD env를 정의해야한다고 불평하는 이유는 무엇입니까?

:

"error: database is uninitialized and password option is not specified You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD"

내가 명령을 '생성의 비밀 고정 표시기'를를 사용하여 비밀을 만든 다음 'MySQL은'컨테이너가 스핀 업되는 경우에는

https://docs.docker.com/engine/swarm/secrets/#/advanced-example-use-secrets-with-a-wordpress-service

는 다음과 같은 오류가 출력됩니다

docker secret create mysql_root_pw tmp-file-holding-root-pw.txt 
docker secret create mysql_pw tmp-file-holding-pw.txt 

위의 실행 후 비밀 'mysql_root_pw'및 'mysql_pw '이 웜 환경에 존재합니다. 여기

docker secret ls 

고정 표시기-compose.yml 파일에서 관련 부분은 다음과 같습니다 : 수행하여 검증

version: '3.1' 
services: 
    mysql: 
    image: mysql/mysql-server:5.7.17 
    environment: 
     - MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_pw" 
     - MYSQL_PASSWORD_FILE="/run/secrets/mysql_pw" 
    secrets: 
     - mysql_pw 
     - mysql_root_pw 

secrets: 
    mysql_pw: 
    external: true 
    mysql_root_pw: 
    external: true 

것은 내가 "고정 표시기 스택 MYSTACK를 배포"않습니다, 나는 오류 'mysql'컨테이너가 시작하려고 할 때 위에서 언급 한 것과 같다.

그것은 "MYSQL_PASSWORD_FILE"와 "MYSQL_ROOT_PASSWORD_FILE"처럼 보인다 MySQL을 인식 표준 환경 변수가 아니며, 그것은 여전히 ​​"MYSQL_ROOT_PASSWORD"환경 변수를 기대합니다.

나는 Docker 17.03을 사용하고 있습니다.

제안 사항?

감사합니다.

+0

사실 처음 질문에 대한 답을 직접 주셨습니다. 다른 질문 있니? –

+0

이봐, 방금 테스트했는데 (정확히 말하면이 기사에서'docker service create'가 아니라), 여러분이 보는 것과 같은 오류가있다. 기사를 읽은 끝에 나는 비밀을 알기 위해 이미지를 업데이트해야한다고 사용자에게 알리는 쪽지를 마지막으로 보았습니다. mysql 이미지가 지원을 추가 한 날짜를 살펴본 결과 [11 월 22 일] (https://github.com/docker-library/mysql/commit/4dd33136c4739667a223d39b6f829beb27b235cf#diff-17ed820d5141a5e8565a0431e5385dae)였습니다. 내 로컬 이미지가 그보다 오래되어서'docker pull mysql : latest'를 실행하고 최근 이미지를 얻었습니다. 명령을 다시 실행하면 시작되었습니다. –

+0

답장을 보내 주셔서 감사합니다. 매우 흥미로운! Docker 17.03 설치로 몇 주 전에 내 호스트 (Ubuntu 16.04)를 설치했는데 (Docker 이미지가 풀리지 않음) Docker 17.03을 설치하고 "docker stack deploy ..."를 실행하여 docker-compose.yml 파일 : '서비스 : MySQL은 : 이미지 : mysql을/mysql을 서버 : 5.7.17' 는 그래서 주 전에 부부로 최신 5.7.17 이미지를 아래로 당겨해야합니다. 내가'docker image ls'을 할 때 "REPOSITORY"에 "mysql/mysql-server"를 표시하지만 "TAG"에 ""을 표시합니다. 나는 구체적인 5.7을 끌어 내리는 방법을 알아낼 것이다.17 mysql 이미지 및 알려주십시오. – kvjava1

답변

0

비밀이 빈 문자열 일 경우이 오류가 발생합니다. 그것이 나에게 일어난 일이며, 비밀은 마운트되고 서비스는 제대로 구성되었지만 암호가 없기 때문에 여전히 실패합니다.