Open Closed

Use docker to deploy abp #1072


User avatar
0
sgal created
  • ABP Framework version: v4.2.2
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:Identityserver and hostapi automatically exit after startup, and there is no log information
  • Steps to reproduce the issue:Use vscode to add dockerfile, and then add them to docker-compose
version: '3.4'

services:
  basketdata:
    image: redis
    # volumes:
    #   - /Users/Shared/redis-data:/var/lib/redis/data

  sqldata:
    image: postgres
    environment: 
      - POSTGRES_DB=CoFarm
      - POSTGRES_USER=aspnetcore
      - POSTGRES_PASSWORD=<pwd>
    # volumes:
    #   - /Users/Shared/pg-data:/var/lib/pgsql/data

  yikicofarmidentityserver:
    image: yikicofarmidentityserver
    environment: 
      - ConnectionString=User ID=aspnetcore;Password=<pwd>;Host=sqldata;Port=5432;Database=CoFarm;Pooling=true;Minimum Pool Size=0;Maximum Pool Size=100;Connection Lifetime=0;
    build:
      context: .
      dockerfile: aspnet-core/src/Yiki.CoFarm.IdentityServer/Dockerfile
    ports:
      - 80
    depends_on: 
      - basketdata
      - sqldata
    # volumes:
    #   - ~/Users/yikicoform:/ids:rw

  yikicofarmhttpapihost:
    image: yikicofarmhttpapihost
    environment: 
      - ConnectionString=User ID=aspnetcore;Password=<pwd>;Host=sqldata;Port=5432;Database=CoFarm;Pooling=true;Minimum Pool Size=0;Maximum Pool Size=100;Connection Lifetime=0;
    build:
      context: .
      dockerfile: aspnet-core/src/Yiki.CoFarm.HttpApi.Host/Dockerfile
    ports:
      - 81
    depends_on: 
      - basketdata
      - sqldata


9 Answer(s)
  • User Avatar
    0
    gterdem created
    Senior .NET Developer

    It is hard to say anything without checking logs.

    To check logs of a stopped container: hit docker ps -a and notice your exited container ID, something like:

    docker commit 0dfd54557799 auth/test (exited container id). Now you can see it when you run docker images list.

    create new container from faulty image docker run -it --rm --entrypoint sh auth/test

    Now navigate to check the logs under Logs/logs.txt.

  • User Avatar
    0
    sgal created

    Thanks, I will try.

  • User Avatar
    0
    sgal created

    This logs look like redis can't found

       at StackExchange.Redis.ConnectionMultiplexer.Connect(String configuration, TextWriter log) in C:\projects\stackexchange-redis\src\StackExchange.Redis\ConnectionMultiplexer.cs:line 903
       at Yiki.CoFarm.CoFarmIdentityServerModule.ConfigureServices(ServiceConfigurationContext context) in /src/aspnet-core/src/Yiki.CoFarm.IdentityServer/CoFarmIdentityServerModule.cs:line 113
       at Volo.Abp.AbpApplicationBase.ConfigureServices()
       --- End of inner exception stack trace ---
       at Volo.Abp.AbpApplicationBase.ConfigureServices()
       at Volo.Abp.AbpApplicationBase..ctor(Type startupModuleType, IServiceCollection services, Action`1 optionsAction)
       at Volo.Abp.AbpApplicationWithExternalServiceProvider..ctor(Type startupModuleType, IServiceCollection services, Action`1 optionsAction)
       at Volo.Abp.AbpApplicationFactory.Create(Type startupModuleType, IServiceCollection services, Action`1 optionsAction)
       at Volo.Abp.AbpApplicationFactory.Create[TStartupModule](IServiceCollection services, Action`1 optionsAction)
       at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplication[TStartupModule](IServiceCollection services, Action`1 optionsAction)
       at Yiki.CoFarm.Startup.ConfigureServices(IServiceCollection services) in /src/aspnet-core/src/Yiki.CoFarm.IdentityServer/Startup.cs:line 10
       at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(Object instance, IServiceCollection services)
       at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.&lt;&gt;c__DisplayClass9_0.&lt;Invoke&gt;g__Startup|0(IServiceCollection serviceCollection)
       at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.Invoke(Object instance, IServiceCollection services)
       at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.&lt;&gt;c__DisplayClass8_0.&lt;Build&gt;b__0(IServiceCollection services)
       at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services, Object instance)
       at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.&lt;&gt;c__DisplayClass13_0.&lt;UseStartup&gt;b__0(HostBuilderContext context, IServiceCollection services)
       at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
       at Microsoft.Extensions.Hosting.HostBuilder.Build()
       at Yiki.CoFarm.Program.Main(String[] args) in /src/aspnet-core/src/Yiki.CoFarm.IdentityServer/Program.cs:line 31
    2021-03-22 06:34:47.175 +00:00 [INF] Starting Yiki.CoFarm.IdentityServer.
    2021-03-22 06:34:48.271 +00:00 [FTL] Yiki.CoFarm.IdentityServer terminated unexpectedly!
    Volo.Abp.AbpInitializationException: An error occurred during ConfigureServices phase of the module Yiki.CoFarm.CoFarmIdentityServerModule, Yiki.CoFarm.IdentityServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. See the inner exception for details.
     ---> StackExchange.Redis.RedisConnectionException: It was not possible to connect to the redis server(s). UnableToConnect on 127.0.0.1:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.0.593.37019
       at StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Object configuration, TextWriter log) in C:\projects\stackexchange-redis\src\StackExchange.Redis\ConnectionMultiplexer.cs:line 941
       at StackExchange.Redis.ConnectionMultiplexer.Connect(String configuration, TextWriter log) in C:\projects\stackexchange-redis\src\StackExchange.Redis\ConnectionMultiplexer.cs:line 903
       at Yiki.CoFarm.CoFarmIdentityServerModule.ConfigureServices(ServiceConfigurationContext context) in /src/aspnet-core/src/Yiki.CoFarm.IdentityServer/CoFarmIdentityServerModule.cs:line 113
       at Volo.Abp.AbpApplicationBase.ConfigureServices()
       ......
    
  • User Avatar
    0
    gterdem created
    Senior .NET Developer

    Makes sense,

    services: basketdata: image: redis # volumes: # - /Users/Shared/redis-data:/var/lib/redis/data

    Should expose 6379

  • User Avatar
    0
    sgal created

    I already dependon, why can't it find it?

  • User Avatar
    0
    sgal created

    add this

    ports:
          - 6379
    

    occur error

    StackExchange.Redis.RedisConnectionException: It was not possible to connect to the redis server(s). UnableToConnect on 127.0.0.1:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.0.593.37019
    

    It seems use appsetting.json config I use environment-> Redis:Configuration=basketdata it worked!

  • User Avatar
    0
    sgal created

    but annother error

    2021-03-22 12:58:49.214 +00:00 [ERR] An error occurred using the connection to database 'CoFarm' on server 'tcp://localhost:5432'.
    2021-03-22 12:58:49.227 +00:00 [ERR] An exception occurred while iterating over the results of a query for context type 'Volo.Abp.BackgroundJobs.EntityFrameworkCore.BackgroundJobsDbContext'.
    System.InvalidOperationException: An exception has been raised that is likely due to a transient failure.
     ---> Npgsql.NpgsqlException (0x80004005): Exception while connecting
     ---> System.Net.Sockets.SocketException (99): Cannot assign requested address
     ......
    
  • User Avatar
    0
    alper created
    Support Team Director

    This doesn't seem to be related to the ABP Framework.

    See these:

    • https://github.com/npgsql/efcore.pg/issues/225#issuecomment-356307586
    • https://github.com/npgsql/efcore.pg/issues/225#issuecomment-532313931
  • User Avatar
    0
    sgal created

    I found the problem. I configured real environment variables in docker-compose, ConnectionStrings, and missing s, which resulted in the appsetting configuration not being replaced.

Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v9.3.0-preview. Updated on May 21, 2025, 13:37