Chciałbym rozpocząć ciągłe wdrażanie w Pipeline Bitbucket dla projektu Ruby on Rails/PostgreSQL/Sidekiq, ale staram się opanować jak to wszystko pasuje do siebie, a konkretnie jak sprawić, by postgres działał w obrazie Docker. Jestem bardzo nowy w Docker i Pipelines.Konfigurowanie dysku CD dla projektu Ruby on Rails z Bitbucket Pipelines and Docker
W moim Googlingu Docker mówi o użyciu funkcji dokowania, aby utworzyć pakiet, więc powinienem mieć pojemnik PostgreSQL i kontener Sideqik, a następnie połączyć je z kontenerem aplikacji. Ale nie jestem pewien, jaka jest różnica między pakietem a obrazem, a jeśli Pipeline Bitbucket obsługuje pakiety. Ostatecznie chcę skonfigurować wdrożenia do środowiska pomostowego na Heroku, ale na razie po prostu uzyskanie rspec spec
do pracy w Pipelines byłoby miłe.
Czy istnieje już publiczny obraz z już skonfigurowanymi Ruby + PostgreSQL, z których mogę korzystać? Jeśli nie, to gdzie mam zacząć? Mój obecny Dockerfile wygląda następująco:
FROM postgres:9.4
FROM ruby:2.3.1-onbuild
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs postgresql-client
I następnie uruchomić docker build .
i docker run -it my-image /bin/bash
i następujące polecenia:
[email protected]:/usr/src/app# postgres
bash: postgres: command not found
[email protected]:/usr/src/app# psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
W jednym pliku Dockerfile nie powinieneś mieć poleceń 2 FROM. Punkt dokowania jest taki, że każdy kontener jest wyspecjalizowany i uruchamia jedno (prawie) polecenie. Będziesz mieć kontener dla Ruby i jeden dla PostgreSQL, ewentualnie jeden dla redis, jeśli zamierzasz używać go jako backend sidekiq. Docker-compose to narzędzie, które pozwala organizować różne pojemniki. Zacznij przeglądać: https://docs.docker.com/compose/rails/ – TopperH