docker

docker compose run echo Пустая переменная окружения из Dockerfile ENV - на выводится значение

Проблема

Как получить через docker compse run распечатку значаения переменной окружения установленной при сборки образа контейнера через env, например:

FROM node:18.17-alpine
WORKDIR /install
COPY package.json ./
COPY package-lock.json ./
RUN npm ci
ENV NODE_PATH=/install/node_modules
WORKDIR /var/www
COPY ../ .
CMD npm start

NODE_PATH - установили при сборке и теперь хотим получить значение при запуске контейнера

docker compose volumes Один путь только для контейнера, без двоеточия и пути на хостовой машине

Предположим, что в docker-compose у нас синтаксис вроде:

volumes:
  - ./host/path:/container/path
  - /worker/node_modules

-- во втором случае (без двоеточия) указан т.н. анонимный том (см. anonymous volumes)

sh: react-scripts: not found

sh: react-scripts: not found

Основная тема: https://fkn.ktu10.com/?q=node/16517

docker compose volumes Не копируются файлы, не отображаются

Описание проблемы

Есть докерфайл:

FROM node:18.15-alpine
#WORKDIR /var/www
# RUN npm ci
# CMD [ "npm", "start" ]

CMD node -i

и композ:

version: '3.9'
services:
  frontend:
    build: 
        context: .
        dockerfile: Dockerfile
    container_name: web_main
    working_dir: /var/www
    volumes:
      - '..:/var/www'

-- выполняем

docker Базовые команды на примерах по шагам - создание образа и запуск контейнера (Отладка)

Основной пример есть в официальном сайте: https://docs.docker.com/get-started/02_our_app/

Для получения контейнера потребуется примкерно в следующее:

docker Контейнер когда завершается, а когда нет. Почему выходит сразу после создания

Чтобы контейнер не завершался, не должен завершаться основной его процесс (запускается, напр. с помощью команды CMD), поэтому команды типа

Для лучшего понимания можно позапускать такой контейнер с разными опциями

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 proxy Поддомены/домены для разных контейнеров

Пример конфигурации для nginxproxy/nginx-proxy:

docker-compose.yml с конфигом для прокси:

version: '3.9'
services:
  nginx-proxy:
    container_name: nginx-proxy-double-test-proxy
    image: nginxproxy/nginx-proxy
    ports:
      - "8888:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - proxynet

networks:
  proxynet:
    name: custom_network

Отдельный docker-compose-app.yml для приложения, например:

Pages

Subscribe to RSS - docker