[英]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.