Hocam, selamlar, detaylı eğitiminiz için de teşekkürler.
2 sorum olacak. İlki Dockerfile multi-stage ile ilgili. Şöyle ki, aşağıdaki kod ile işlem gerçekleştirmekteyim.
FROM node:latest
WORKDIR /usr/src/app
COPY ./app/package*.json ./
COPY ./app .
RUN npm install
RUN apt-get update && apt-get install -y curl postgresql-client
EXPOSE 3000
ENTRYPOINT [ "npm" ]
CMD [ "start" ]
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 CMD curl -f http://localhost:3000/ || exit 1
Ancak, burada postgre indirme işlemini de multi-stage ile yapmak istiyorum. Çok özel bir nedeni yok, sadece eğitimde de belirttiğiniz gibi image’lar güvenlik düzenlemeleri vs. yapıldığı için bu şekilde bir yol izlemek istiyorum. Diğer yandan, init.sql adında tabloların ve içeriklerin olduğu bir sql dosyam var. Bunu normalde docker cp ile container içerisine kopyalayıp exec ile import ediyordum.
Kodu şu hale getirdiğimde, node ile uygulamayı çalıştırsam da postgre’i başlatamıyor ve hata alıyorum.
FROM node:latest
WORKDIR /usr/src/app
COPY ./app/package*.json ./
COPY ./app .
RUN npm install
EXPOSE 3000
ENTRYPOINT [ "npm" ]
CMD [ "start" ]
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 CMD curl -f http://localhost:3000/ || exit 1
FROM postgres:latest
ADD ./pgdata/init.sql ./
EXPOSE 5432
CMD psql -U cksn -d newdbtable -f ./init.sql
Aldığım hata şöyle;
psql: error: could not connect to server: 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”?
Bu aşamada nasıl bir yol izlememi önerirsiniz?