Coyote na Dockerze

0

Od jakiegoś czasu pracuje codziennie z dockerem toteż z pliku README usunąłęm całkowicie instrukcje instalacji ręcznej. Mamy też obsługę Vagranta dla użytkowników korzystających z Windowsa, ale bardzo możliwe że nie wszystko będzie działać. A może ktoś ma Dockera na Windowsa i mógłby sprawdzić czy na tym systemie wszystko dobrze się instaluje? Kiedyś @Marooned walczył z tym, ale nie udało mu się. Od tamtego czasu trochę minęło więc może tym razem będzie ok i będzie można usunąć pliki Vagrantowe z repo?

Podsyłam URL do repo: https://github.com/adam-boduch/coyote

0

Z dockerem na Windows jest tak, że pod Win10 jest inny klient niż pod starsze Win i to z nimi przegrałem. Nie testowałem Dockera na Win10, to inna para kaloszy.

2

Nie działa :(

Problem polega na tym, że Postgres nie startuje:

db_1             | creating subdirectories ... ok
db_1             | selecting default max_connections ... 20
db_1             | selecting default shared_buffers ... 400kB
db_1             | selecting dynamic shared memory implementation ... posix
db_1             | creating configuration files ... ok
db_1             | running bootstrap script ... 2019-04-09 22:19:07.648 UTC [76] FATAL:  data directory "/var/lib/postgresql/data" has wrong ownership
db_1             | 2019-04-09 22:19:07.648 UTC [76] HINT:  The server must be started by the user that owns the data directory.
db_1             | child process exited with exit code 1
db_1             | initdb: removing contents of data directory "/var/lib/postgresql/data"

A Postgres nie startuje, bo najwyraźniej od dwóch lat jest to problem: https://github.com/docker-library/postgres/issues/435, a w zasadzie to chodzi o to https://github.com/docker/for-win/issues/445.

W tym pierwszym issue jest opisane rozwiązanie z nazywanymi woluminami, jutro spróbuję to zmusić do działania.

0

Może to dlatego, że postgres zapisuje dane poza kontenerem?

services:
  db:
    image: postgres
    volumes:
      - ./.data/pgsql:/var/lib/postgresql/data:z
    environment:
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_DATABASE}
    ports:
      - 5432:5432
2

Okazuje się, że tak, wystarczy zrobić "named volume" dla Postgresa i zaczyna on działać.

Aczkolwiek zrobiło mi się coś jeszcze - nginx intensywnie używał pliku "default.conf" (w /etc/nginx/conf.d wewnątrz kontenera), stąd wszystkie zapytania do całego nginx szły właśnie do tego vhosta, a nie do Coyote (i ciągle miałem "Welcome to nginx!"). Pozbyłem się tego robiąc coś takiego:

  nginx:
    image: nginx:latest
    volumes:
      - ./docker/nginx/:/etc/nginx/conf.d/

Aby na pewno tylko pliki Coyote znalazły się w conf.d i pomogło.

Różnice wyglądają następująco: https://github.com/adam-boduch/coyote/compare/master...ktos:docker-windows?expand=1#diff-4e5e90c6228fd48698d074241c2ba760

W zasadzie dałoby się prawdopodobnie przenieść ścieżkę ./.data/pgsql, aby była w .env i wtedy plik ze zmiennymi środowiskowymi dla wszystkiego miałby tam wpisane właśnie to, a pod Windows miałby postgres i odwoływałby się do named volume. Nie wiem czy to dobra droga, ale nie mam innego pomysłu, aby nie robić różnych docker-compose dla różnych systemów.

Niemniej, po takich poprawkach, działa.

0

Super. Sprawdzimy jeszcze czy jest ok pod linuxem i można zrobić merge :)

1

Docker pod Win10, to jest... wirtualka z linuksem, stąd się Hyper-V odpala, a to "uwala" normalne hypervisory typu VirtualBox lub VMware, a przynajmniej wymaga ich rekonfiguracji do ponownego działania. Generalnie tego rozwiązania nie polecam, lepiej już odpalać dockera pod "normalną" VMką z Linuksem jak już ktoś używa Windows.

0

@Adam Boduch: ale może można by w README umieścić dwa sposoby instalacji: i automatyczną, i ręczną?

0

Właśnie usunąłem z README instrukcje instalacji ręcznej abym nie musiał tego supportować :) Zmiana wersji biblioteki, dodanie/usunięcie innej. Trzeba pamiętać o tym, aby uaktualniać README i przetestować czy na pewno działa.

0

W porządku. Jak w końcu zrobię dokumentację do Coyote, to sam będę supportować. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1