docker-compose

docker create-react-app Пример docker-compose для React

Возможный вариант:

docker-compose.yml:

version: '3.9'
services:
  frontend:
    working_dir: /var/www
    volumes:
      - '.:/var/www'
    ports:
      - "3000:3000"

Dockerfile:

FROM node:18.15-alpine
WORKDIR /var/www
COPY package.json ./
COPY package-lock.json ./
RUN npm ci
COPY ../ .
CMD npm start

Проблемы и решения для node_modules/

Всего есть две задачи/проблемы:

docker-compose Для docker 20.10 и выше -- как настроить команду, command not found (тире в старой, без тире в новой)

Дело в том что теперь надо использовать формат:

 docker compose

вместо записи с тире:

docker-compose

или не так....выясняем

Возможное решение

Чтобы поддерживать старые команды docker-composer (через тире), нужно:

docker-compose up build Как понять в чем ошибка сборки. Отладка, подробный лог, сообщения

Используйте вместо отсоединенного режима (которого для up судя по всему и нет)

docker-compose up -d --build

Обычный:

docker-compose up --build

-- здесь будут сыпаться сообщения об ошибках сборки контейнеров (если таковые ошибки есть).

Для совсем подробного лога можно использовать:

docker-compose --verbose up -d --build

docker nginx 404 not found Ошибка конфигурации при работе с php-fpm

В моем случае причиной ошибки было то, что в контейнере с нджинком вообще не было php-кода:

  nginx:
      image: nginx:alpine
      ports:
          - 9731:80
      volumes:
          - './config/nginx/:/etc/nginx/conf.d/'

Как минимум нужно прокинуть публичную папку, где лежит точка входа (напр. index.php):

  nginx:
      image: nginx:alpine
      ports:
          - 9731:80
      volumes:
          - './config/nginx/:/etc/nginx/conf.d/'
          - '../public/:/var/www/public'

docker compose volumes Копирование тома происходит вместе с директорией, почему-то

Причина не очень понятно в чем именно была. При повторных запусках вроде все нормально

docker-compose redis Пример docker-compose.yml

Минимальный пример:

version: "3.9"
services:
  redis:
    image: "redis:5.0.6"
    container_name: my-test-redis
    ports:
     - "6379:6379"

-- просто прокидываем в контейнер тот же порт, указываем какую именно версию редиса используем и назначаем имя контейнера

docker-compose COPY failed: forbidden path outside the build context Ошибка Решение

COPY failed: forbidden path outside the build context

Причина

Команда COPY не дает "вылезти" за пределы определенного контекста сборки (соображения безопасности, видимо).

docker compose Пересобрать (перезапустить) только один сервис (контейнер)

Остановка и пересборка одного только сервиса web (напр. такого docker-compose):

docker-compose -f ./docker-compose.prod.yml stop web
docker-compose -f ./docker-compose.prod.yml  up  -d --build --force-recreate  web

-- в нашем случае указываем путь к файлу

Идея отсюла: https://blog.georgovassilis.com/2016/12/...

Invalid address ...: It does not belong to any of this network's subnets Docker ошибка

ERROR: for ... Cannot start service ...: Invalid address 172.37.1.2: It does not belong to any of this network's subnets

Ошибка возникает при попытке запустить контейнеры:

docker-compose -f ./docker/docker-compose.yml up --build  --force-recreate 

Не работает для конфигурации:

Pages

Subscribe to RSS - docker-compose