Докер - не может изменить файлы (wso2) - PullRequest
0 голосов
/ 02 мая 2018

Я использую Docker 18.04 и запускаю wot2 iot-сервер. Я хочу изменить IP-адрес с помощью этого урока https://docs.wso2.com/display/IOTS330/Configuring+the+IP+or+Hostname. Я использую прикрепленный файл docker-compose. Я создаю контейнер, используя

sudo docker-compose up

Тогда я бегу

sudo -it -u 0 <container-id> bash

перейдите в каталог скриптов и выполните скрипт.

После этого файлы, такие как conf / carbon.xml, были изменены, и все выглядит хорошо. Если я перезапущу контейнер, выполняющий

docker container restart $(docker ps -a -q)

все изменения там, где отбрасываются. Но странная вещь, если я создаю новый файл e. г. в каталоге conf этот файл сохраняется даже после перезагрузки. Может кто-нибудь объяснить мне это?

version: '2.3'
services:
  wso2iot-mysql:
    image: mysql:5.7.20
    container_name: wso2iot-mysql
    hostname: wso2iot-mysql
    ports:
      - 3306
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./mysql/scripts:/docker-entrypoint-initdb.d
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-proot"]
      interval: 10s
      timeout: 60s
      retries: 5
  wso2iot-broker:
    image: wso2iot-broker:3.3.0
    container_name: wso2iot-broker
    hostname: wso2iot-broker
    ports:
      - "9446:9446"
      - "5675:5675"
    healthcheck:
      test: ["CMD", "nc", "-z", "localhost", "9446"]
      interval: 10s
      timeout: 120s
      retries: 5
    depends_on:
      wso2iot-mysql:
        condition: service_healthy
    volumes:
      - ./broker:/home/wso2carbon/volumes/wso2/broker
  wso2iot-analytics:
    image: wso2iot-analytics:3.3.0
    container_name: wso2iot-analytics
    hostname: wso2iot-analytics
    healthcheck:
      test: ["CMD", "curl", "-k", "-f", "https://localhost:9445/carbon/admin/login.jsp"]
      interval: 10s
      timeout: 120s
      retries: 5
    depends_on:
      wso2iot-mysql:
        condition: service_healthy
    volumes:
      - ./analytics:/home/wso2carbon/volumes/wso2/analytics
    ports:
      - "9445:9445"
  wso2iot-server:
    image: wso2iot-server:3.3.0
    container_name: wso2iot-server
    hostname: wso2iot-server
    healthcheck:
      test: ["CMD", "curl", "-k", "-f", "https://localhost:9443/carbon/admin/login.jsp"]
      interval: 10s
      timeout: 120s
      retries: 5
    depends_on:
      wso2iot-mysql:
        condition: service_healthy
    volumes:
      - ./iot-server:/home/wso2carbon/volumes
    ports:
      - "443:9443"
    links:
      - wso2iot-mysql

1 Ответ

0 голосов
/ 02 января 2019

Насколько я знаю, пока контейнер не будет удален, слой для записи должен быть доступен. Но это не ожидаемый способ использования Docker. В этом случае, если вам нужно запустить скрипт change-ip, я думаю, что было бы лучше создать новый образ Docker, где скрипт change-ip выполняется в процессе создания образа Docker.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...