Dockerizing Wordpress: запустить npm установить на docker -создать (dev ENV) - PullRequest
0 голосов
/ 07 апреля 2020

Я просто новичок во Docker вселенной. Я использую его для автоматизации установки проектов WordPress на локальные машины для разработчиков.

  • В теме WordPress используются composer, npm, bower и gulp
  • Я создал том чтобы смонтировать исходный код в контейнер.
  • Как и в среде разработки, разработчик должен иметь возможность добавлять плагины и библиотеки.

Итак:

  • , если он запускает npm install library_x --save в контейнере, информация будет потеряна (в package.json и в директории node_modules), когда docker - составить вниз.

  • если он запускает его на своем хосте, возможно, у него не установлено npm.

1. Как справиться с этим делом?


связанные задачи:

  • Мне нужно сохранить node_modules, vendor, bower_components в изображении когда package.json, composer.json изменяется
  • или запускается npm install, composer install ... на каждом docker-compose up.

2. Какова лучшая практика и как я могу это сделать?

Вот служба на docker-compose.yml

  wordpress :
    build:
      context: .
      dockerfile: ./docker/wp/Dockerfile
      args:
        THEME_DIR_NAME: ${THEME_DIR_NAME}
    depends_on: 
      - database
    ports:
      - ${WP_PORT}:80
    environment:
      WORDPRESS_DB_HOST: database
      WORDPRESS_DB_USER: ${DATABASE_USER}
      WORDPRESS_DB_PASSWORD: ${DATABASE_PASSWORD}
      WORDPRESS_DB_NAME: ${DATABASE_NAME}
      WORDPRESS_TABLE_PREFIX: ${DATABASE_TABLE_PREFIX}
    volumes:
      - '.:/var/www/html/wp-content/themes/${THEME_DIR_NAME}'
      - '/var/www/html/wp-content/themes/${THEME_DIR_NAME}/vendor'
      - '/var/www/html/wp-content/themes/${THEME_DIR_NAME}/node_modules'
      - '/var/www/html/wp-content/themes/${THEME_DIR_NAME}/bower_components'
      - '/var/www/html/wp-content/themes/${THEME_DIR_NAME}/dist'
      - ./plugins:/var/www/html/wp-content/plugins

и соответствующий Dockerfile

FROM wordpress:5.3.2-php7.2-apache

ARG THEME_DIR_NAME

COPY . /var/www/html/wp-content/themes/$THEME_DIR_NAME/

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer  && \
 apt-get update && \
 apt-get install -y git && \
 apt install -y python-minimal && \
 curl -sL https://deb.nodesource.com/setup_10.x | bash - && \
 apt-get install nodejs -y && \
 curl -L https://npmjs.org/install.sh | sh && \
 npm install -g bower && \
 npm install -g gulp && \
 mkdir /var/www/html/wp-content/uploads && \
 chmod -R 777 /var/www/html/wp-content/uploads && \
 cd /var/www/html/wp-content/themes/${THEME_DIR_NAME} && \
 composer install && \
 npm install && \
 bower install --allow-root && \
 gulp

Большое вам спасибо!

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