Dockerfile копирует файлы между хостами перед запуском в контейнер - PullRequest
0 голосов
/ 26 августа 2018

Я использую semantic-ui, для которого требуется semantic.json, расположенный в корневой папке, и установить параметр autoInstall: true при использовании Dockerfile.

Если я хочу использовать собственную тему, мне нужно пересобрать semantic-ui, для которого gulp требуется semantic.json, расположенный в root-fooder / semantic /.Это означает, что перед созданием образа файл semantic.json должен быть расположен в семантической папке, скопировать в корневую папку, а затем, после установки npn и сервера ng, должен удалить semantic.json в корневой папке, чтобы позволить gulp работать.

FROM node:8.11.3

WORKDIR /app

# add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# install and cache app dependencies
COPY package.json /app
COPY package-lock.json /app
COPY semantic.json /app

RUN npm install -g npm@latest \
    && npm install -g n \
    && npm install -g @angular/cli \
    && npm install -g gulp \
    && npm install gulp \
    && npm install

# add app
COPY . /app

EXPOSE 4200

# start app
CMD ng serve --port 4200 --host 0.0.0.0

Мой вопрос: как я могу использовать Dockerfile, чтобы скопировать файл semantic.json из семантической папки в корневую папку на хосте и построить его, а затем удалить в корневой папке?

1 Ответ

0 голосов
/ 26 августа 2018

Вместо того, чтобы найти обходной путь решения, я обновляю semantic.json, чтобы указать базовый путь к корневой папке, а оставшиеся пути преобразуются в семантический префикс, как показано ниже

    "base": "",
    "paths": {
        "source": {
            "config": "semantic/src/theme.config",
            "definitions": "semantic/src/definitions/",
            "site": "semantic/src/site/",
            "themes": "semantic/src/themes/"
        },
        "output": {
            "packaged": "semantic/dist/",
            "uncompressed": "semantic/dist/components/",
            "compressed": "semantic/dist/components/",
            "themes": "semantic/dist/themes/"
        },
        "clean": "semantic/dist/"
    },
    "permission": false,
    "autoInstall": true,
    "rtl": false,
    "version": "2.3.3" 
...