PostgreSQL в Docker

firep91613

Новичок
Господа, я тут дошел до баз данных. Сейчас у меня PHP стоит в докере, а на ноутбуке в папке PHP - Dockerfile. Я тут погуглил, правильно ли я понимаю, что мне нужно установить Docker Compose? Создать файл docker-compose.yml в папке PHP и создать стрктуру проекта.
 

AmdY

Пью пиво
Команда форума
Нет, уже пару лет как не надо компос ставить отдельно, просто через пробел пиши
Код:
docker compose up
 

AnrDaemon

Продвинутый новичок
Всё сильно зависит от того, что ты хочешь получить в итоге.
Я для своих проектов не маюсь дурью и просто держу отдельный MySQL и отдельный PostgeSQL сервер.
Потому что, если ты хочешь БД в контейнере (зачем?), тебе придётся либо делать ручками персистентный волюм и подключать его как сторадж, либо мириться с тем, что БД у тебя каждый раз новая (интересный экспириэнс в отдельных случаях, но в целом вещь мало полезная).
 

AnrDaemon

Продвинутый новичок
@AnrDaemon, у вас PHP тоже в системе стоит как СУБД?
И в системе стоит тоже. Когда нужно что-то запрограммировать сложнее "echo hello world", поднимать Delphi или мучить Java как-то лень. Проще на PHP накидать агоритм. Особенно если нужно на один раз.
 

firep91613

Новичок
Друзья, я не могу понять, почему файлы не обновляются. PostgreSQL установил в докер. Создал том.
Код:
Dockerfile:
FROM php
RUN apt-get update \
    && apt-get install -y libpq-dev \
    && docker-php-ext-install pdo pdo_pgsql
WORKDIR /php-app
COPY . /php-app
CMD ["php", "-S", "0.0.0.0:4000"]
Код:
docker-compose.yaml
version: '3.8'
services:
  postgres:
    image: postgres:latest
    restart: always
    environment:
      POSTGRES_PASSWORD: mysecretpassword
    ports:
      - "5432:5432"
    networks:
      - my-network
    volumes:
      - postgres_data:/var/lib/postgresql/data

  php:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    ports:
      - "4000:4000"
    networks:
      - my-network
    volumes:
      - .:/var/www/html

networks:
  my-network:
    driver: bridge

volumes:
  postgres_data:
Код:
sudo docker run -d --name postgres-container -e POSTGRES_PASSWORD=mysecretpassword -v postgres_data:/var/lib/postgresql/data postgres:latest
sudo docker build -t php-app .
 

ivanov77

Новичок
Запускать надо - docker compose up -d
, а не вот той длинной командой, у вас же все это в конфиге
 
Сверху