• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

도커 볼륨 생성에 에러가 뜹니다..

게르노 270

0

11

Rocket chat을 설치하기 위해 

여태껏 portainer로만 도커를 설치해오다가

처음으로 docker compose를 사용해보고 있습니다.

 

volumes:
  mongodb_data: { driver: local }

services:
  rocketchat:
    image: registry.rocket.chat/rocketchat/rocket.chat:${RELEASE:-latest}
    restart: on-failure
    labels:
      traefik.enable: "true"
      traefik.http.routers.rocketchat.rule: Host(`${DOMAIN}`)
      traefik.http.routers.rocketchat.tls: "true"
      traefik.http.routers.rocketchat.entrypoints: https
      traefik.http.routers.rocketchat.tls.certresolver: le
    environment:
      MONGO_URL: "${MONGO_URL:-\
        mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\
        ${MONGODB_DATABASE:-rocketchat}?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}"
      MONGO_OPLOG_URL: "${MONGO_OPLOG_URL:\
        -mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\
        local?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}"
      ROOT_URL: ${ROOT_URL:-http://localhost:${HOST_PORT:-3000}}
      PORT: ${PORT:-3000}
      DEPLOY_METHOD: docker
      DEPLOY_PLATFORM: ${DEPLOY_PLATFORM}
    depends_on:
      - mongodb
    expose:
      - ${PORT:-3000}
    ports:
      - "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}"

  mongodb:
    image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-4.4}
    restart: on-failure
    volumes:
      - mongodb_data:/bitnami/mongodb
    environment:
      MONGODB_REPLICA_SET_MODE: primary
      MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0}
      MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017}
      MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb}
      MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}
      MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb}
      MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true}
      ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes}

 

yml 파일 내용은 이렇습니다만

 

도커를 설치하려 하면

 

다음과 같은 에러가 뜹니다.

 

image.png.jpg

 

그래서 yml 파일에서 맨 위 둘째줄에 mongodb_data 앞 띄어진 부분을 없애고 

도커를 설치하려 했더니 다음과 같은 에러가 떴습니다.

 

image.png.jpg

 

위 두개 경고야 아무것도 기입하지 않았으니 그렇다 쳐도...

volumes must be a mapping 이라 뜨는데 어찌해야하나요..?

 

신고공유스크랩
11
profile image 1등
ExpBox 2022.08.18. 22:01

컴포즈 버전을 명시하지 않아서 그런거 아닐까요? 첫 줄에 version: '3'을 요즘 많이 쓰긴합니다.

 

그리고 볼륨이야 번역해보니 무슨 일인지는 모르겟으나 볼륨의 첫 글자로 _가 오면 안되는데 _mongodb_data로 볼륨이 생성되어서 그런것 같습니다. 그 경우 위에 있는 모든 -를 빼거나(rocketchat 서비스 쪽의 depends on, expose 등) 모든 값에 -를 넣어주면서 통일해야 제대로 될 수도 있습니다.

 

그나저나 컴포즈 작성 방법이 되게 특이하네요. 헣..

2등
블랙앤해적 2022.08.18. 22:09

docker-compose 2.9.0으로 해야합니다.

그리고 .env 파일이 필요하구요.

지금테스트중인데 잘 안되네요

profile image 3등
달소 2022.08.18. 22:47

다시했을때도 에러가뜨는건 기존에 docker-compose가 컨테이너를 만들다가 말아서 뜰수도있습니다.

portainer에 들어가서 컨테이너와 볼륨을 한번 다 삭제하고다시 실행해보시면좋을듯하네요

블랙앤해적 2022.08.18. 22:59

https://nc1004.ddns.net/s/kb4ea5WWBTQpFWx

 

시놀로지 도커에서 테스트 했습니다. 잘 됩니다.

docker-compose 버전은 2.9.0 으로 하라고 공홈에 나와있습니다.

역방향프록시 뒤에서 실행이 아니면 docker-compose 의 Accounts_UseDNSDomainCheck: false  내용을 삭제해주세요.

게르노 글쓴이 2022.08.19. 15:39
블랙앤해적

.env 파일은 어떻게 활용하나요...?? 도커 컴포즈 버전은 2.9.0이고, 콜라님 말씀대로 ./을 추가해 위의 에러는 더이상 뜨지 않습니다만 Error response from daemon: Invalid container name (-mongodb-1), only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed 에러가 뜹니다ㅜㅜ

게르노 글쓴이 2022.08.23. 14:45
블랙앤해적

주신 env 파일과 yml 파일 같은 디렉토리에 넣고 docker-compose up -d 하는데 자꾸 위의 컨테이너 이름 에러가 뜹니다... 검색해도 잘 안나오네요

콜라 2022.08.18. 23:05

mongodb:

image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-4.4}

restart: on-failure

volumes:

- mongodb_data:/bitnami/mongodb

 

의 - mongodb_data:/bitnami/mongodb를

- ./mongodb_data:/bitnami/mongodb로 해야 합니다.

 

 

콜라 2022.08.18. 23:18
콜라

./을 안붙이면 컴포즈 파일의 volumes의 mongodb_data를 찾게 되요.

 

---------------------------------------

version: "3.9"

 

services:

 

mysql:

image: mysql

volumes:

- db-data:/var/lib/mysql/data

networks:

- overlay

deploy:

mode: replicated

replicas: 2

endpoint_mode: dnsrr

 

volumes:

db-data:

----------------------------------------------------

이 예시에서 mysql의 volumes에는 
db-data가 언급되어있죠.
이렇게 쓰면 같은 오류가 발생합니다.
왜냐하면 db-data가 무엇인지 정의 되어있지 않기 때문이죠.

그래서 services: 와 같은 층(?)에 volumes를 만들어 db-data를 명시해주어야 합니다.
db-data에 여러가지 속성을 넣을 수 있는데, 아무것도 넣지 않으면 로컬 파일이 됩니다.

docker-compose.yml 파일 내 volumes의 db-data가 아니라
docker-compose를 실행한 경로의 상대경로라고 명시하는 방법도 있습니다.
그 방법이 앞서 말씀드린, ./db-data:/var/lib/mysql/data를 사용하는 방법이 되겠습니다.

게르노 글쓴이 2022.08.19. 15:38
콜라

앞에 ./를 붙이니 해당 에러는 더 이상 뜨지 않습니다만, Error response from daemon: Invalid container name (-mongodb-1), only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed 라는 에러가 뜹니다.... 도커 컴포즈도 2.9.0으로 업데이트한 상태인데 왜 이럴까요...?

콜라 2022.08.19. 16:17
게르노

only [a-zA-Z0-9][a-zA-Z0-9_.-]

요 부분이 regex를 알아야 하는데..

해석하자면.

이름의 첫글자는 대문자, 소문자, 숫자로 시작될수 있고

그 이후는 대소문자 숫자 _ - . 이 들어갈수 있다는 의미입니다.

이름 가장 앞의 -를 빼줘야해요

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
잡담 proxmox로 갈아탔습니다 7 기현 21시간 전07:34 285 +2
잡담 Immich가 FUTO에 합류했습니다.(Immich 핵심 팀은 정규직으로 근무합니다.) 4 달소 1일 전11:38 259 +1
정보 오픈아이콘 제공 사이트(https://cdn.jsdelivr.net) 오류 발생 => 복구됨 2 지딱코 2일 전14:31 213 +1
3894 질문
normal
스키피95 5시간 전00:07 34 0
3893 질문
normal
고심분투 12시간 전17:10 116 0
3892 질문
image
경호 13시간 전15:50 62 0
3891 질문
normal
경호 15시간 전13:23 47 0
3890 잡담
image
기현 21시간 전07:34 285 +2
3889 잡담
image
keiminem 1일 전13:12 422 0
3888 잡담
normal
달소 1일 전11:38 259 +1
3887 질문
image
EXP 2일 전23:48 84 0
3886 질문
normal
홍익 2일 전19:26 205 0
3885 정보
image
지딱코 2일 전14:31 213 +1
3884 가이드
image
달소 3일 전22:22 358 +3
3883 가이드
image
ljr10 3일 전08:20 167 0
3882 가이드
image
달소 3일 전06:46 185 +1
3881
image
달소 3일 전05:50 206 +6
3880 정보
image
달소 3일 전05:38 124 0
3879 잡담
image
달소 4일 전05:20 406 0
3878 오픈소스
image
keiminem 4일 전17:43 352 +3
3877 질문
normal
purndal 4일 전14:32 241 0
3876 질문
image
초보나스 4일 전10:46 105 0
3875 후기
image
달소 4일 전10:03 330 0