簡體   English   中英

如何將postgresql添加到現有的dockerfile中?

[英]How can I add postgresql to an existing dockerfile?

我正在使用docker支持的ASP.NET Core API項目。 我希望可以將PostgreSQL或mysql添加到我的dockerfile中並使其正常工作。 現在,我對docker並沒有太多的經驗,但是我對docker的功能及其工作方式感到滿意(特別是我的電腦不會被我不需要的隨機程序弄得一團糟,除了一個項目外)。

我已經從https://docs.docker.com/engine/examples/postgresql_service/嘗試了該示例,但是它似乎並不適合我,我想知道我的東西是如何工作的。 因此,即使它工作正常,我還是希望有一個看起來更像這樣的解決方案:

FROM postgresql:11.5
EXPOSE 5432
ENV <add password environment variable here>

我在添加postgresql之前擁有的dockerfile是

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["ModOs__Api/ModOs__Api.csproj", "ModOs__Api/"]
RUN dotnet restore "ModOs__Api/ModOs__Api.csproj"
COPY . .
WORKDIR "/src/ModOs__Api"
RUN dotnet build "ModOs__Api.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "ModOs__Api.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .

ENTRYPOINT ["dotnet", "ModOs__Api.dll"]

添加postgres后,我只想簡單地在c#代碼中的URL localhost:5432上連接到它。 另外,如果可能的話,如果我可以在瀏覽器中查看數據庫,那將是很棒的(但是,如果這使事情復雜了10倍,請不要在上面浪費時間)。

最好的或最好的方法是什么?

提前致謝!

你不知道 盡管可能,但我建議不要這樣做。 Docker的理念是每個服務都在其自己的容器中運行。 如果您遵循此范例,那么對您來說事情將會變得容易得多。 從好的方面來看,這使它變得舒適。 例如,查看此簡單的docker compose文件

version: '3'
services:
  web:
    build: .
    ports:
      - "80:80"
  postgres:
    image: "postgres:9.6"

而不是連接到localhost:5432而是連接到postgres:5432

docker-compose up旋轉一切

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM