Activities of "Spospisil"

Currently, the generated docker-compose.yml file for a tiered solution only has the 'web' service defined in it, but I'm more concerned about all the url settings needed to run ABP, such as the ones for oidc, etc

On which version did you come across this behavior? This problem should have been fixed on version 7.1.0-rc.

Here is the docker-compose.yml file I've just generated for a tiered mvc project named Acme.BookStore on latest rc version 7.1.0-rc.3:

version: '3.7'  
  
services:  
  bookstore-web:  
    image: acme/bookstore-web:latest  
    container_name: bookstore-web  
    hostname: bookstore-web  
    build:  
      context: ../../  
      dockerfile: src/Acme.BookStore.Web/Dockerfile.local  
    environment:  
      - ASPNETCORE_URLS=https://+:443;http://+:80;  
      - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx  
      - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc  
      - App__SelfUrl=https://localhost:44353  
      - AuthServer__RequireHttpsMetadata=false  
      - AuthServer__IsContainerizedOnLocalhost=true  
      - AuthServer__Authority=https://localhost:44334/  
      - RemoteServices__Default__BaseUrl=http://bookstore-api  
      - RemoteServices__AbpAccountPublic__BaseUrl=http://bookstore-authserver  
      - AuthServer__MetaAddress=http://bookstore-authserver  
      - Redis__Configuration=redis  
    ports:  
      - "44353:443"  
    depends_on:  
      - bookstore-api  
    restart: on-failure  
    volumes:  
      - ./certs:/root/certificate  
    networks:  
      - abp-network  
  
  bookstore-api:  
    image: acme/bookstore-api:latest  
    container_name: bookstore-api  
    hostname: bookstore-api  
    build:  
      context: ../../  
      dockerfile: src/Acme.BookStore.HttpApi.Host/Dockerfile.local  
    environment:  
      - ASPNETCORE_URLS=https://+:443;http://+:80;  
      - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx  
      - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc  
      - App__SelfUrl=https://localhost:44354  
      - App__HealthCheckUrl=http://bookstore-api/health-status  
      - AuthServer__RequireHttpsMetadata=false  
      - AuthServer__Authority=http://bookstore-authserver  
      - ConnectionStrings__Default=Data Source=sql-server;Initial Catalog=BookStore;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=true;TrustServerCertificate=True;  
      - Redis__Configuration=redis  
    ports:  
      - "44354:443"  
    depends_on:  
      sql-server:  
        condition: service_healthy  
      redis:  
        condition: service_healthy  
    restart: on-failure  
    volumes:  
      - ./certs:/root/certificate  
    networks:  
      - abp-network  
    
  bookstore-authserver:  
    image: acme/bookstore-authserver:latest  
    container_name: bookstore-authserver  
    build:  
      context: ../../  
      dockerfile: src/Acme.BookStore.AuthServer/Dockerfile.local  
    environment:  
      - ASPNETCORE_URLS=https://+:443;http://+:80;  
      - App__SelfUrl=https://localhost:44334  
      - App__CorsOrigins=https://localhost:44353,https://localhost:44354  
      - AuthServer__RequireHttpsMetadata=false  
      - AuthServer__Authority=http://bookstore-authserver  
      - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx  
      - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc  
      - ConnectionStrings__Default=Data Source=sql-server;Initial Catalog=BookStore;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=true;TrustServerCertificate=True;  
      - Redis__Configuration=redis  
    ports:  
      - "44334:443"  
    depends_on:  
      sql-server:  
        condition: service_healthy  
      redis:  
        condition: service_healthy  
    restart: on-failure  
    volumes:  
      - ./certs:/root/certificate  
    networks:  
      - abp-network  
  
    
  db-migrator:  
    image: acme/bookstore-db-migrator:latest  
    container_name: db-migrator  
    build:  
      context: ../../  
      dockerfile: src/BookStore.DbMigrator/Dockerfile.local  
    environment:  
      - OpenIddict__Applications__BookStore_Web__RootUrl=https://localhost:44353  
      - OpenIddict__Applications__BookStore_Swagger__RootUrl=https://localhost:44354  
      - ConnectionStrings__Default=Data Source=sql-server;Initial Catalog=BookStore;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=true;TrustServerCertificate=True;  
    depends_on:  
      sql-server:  
        condition: service_healthy  
    networks:  
      - abp-network  
    
  sql-server:  
    container_name: sql-server  
    image: mcr.microsoft.com/mssql/server:2019-latest  
    ports:  
      - "1434:1433"  
    environment:  
      SA_PASSWORD: "myPassw0rd"  
      ACCEPT_EULA: "Y"  
    volumes:  
      - sqldata:/var/opt/mssql  
    networks:  
      - abp-network  
    healthcheck:  
      test: /opt/mssql-tools/bin/sqlcmd -S sql-server -U sa -P "myPassw0rd" -Q "SELECT 1" -b -o /dev/null  
      interval: 10s  
      timeout: 3s  
      retries: 10  
      start_period: 10s  
  redis:  
    container_name: redis  
    image: redis:alpine  
    ports:  
      - "6379:6379"  
    networks:  
      - abp-network  
    healthcheck:  
      test: ["CMD", "redis-cli","ping"]  
volumes:  
  sqldata:  
    name: bookstore_sqldata  
networks:  
  abp-network:  
    name: bookstore-network  
    driver: bridge  

You can try to use this and update as you see fit.

As I indicated in the initial support ticket I am running 7.0.2. However let me take what you outlined and apply it to what my current docker-compose is currently.

Can you also show me what your OpenIddictApplications table looks like as well please?

Currently, the generated docker-compose.yml file for a tiered solution only has the 'web' service defined in it, but I'm more concerned about all the url settings needed to run ABP, such as the ones for oidc, etc

On which version did you come across this behavior? This problem should have been fixed on version 7.1.0-rc.

Here is the docker-compose.yml file I've just generated for a tiered mvc project named Acme.BookStore on latest rc version 7.1.0-rc.3:

version: '3.7' 
 
services: 
  bookstore-web: 
    image: acme/bookstore-web:latest 
    container_name: bookstore-web 
    hostname: bookstore-web 
    build: 
      context: ../../ 
      dockerfile: src/Acme.BookStore.Web/Dockerfile.local 
    environment: 
      - ASPNETCORE_URLS=https://+:443;http://+:80; 
      - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx 
      - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc 
      - App__SelfUrl=https://localhost:44353 
      - AuthServer__RequireHttpsMetadata=false 
      - AuthServer__IsContainerizedOnLocalhost=true 
      - AuthServer__Authority=https://localhost:44334/ 
      - RemoteServices__Default__BaseUrl=http://bookstore-api 
      - RemoteServices__AbpAccountPublic__BaseUrl=http://bookstore-authserver 
      - AuthServer__MetaAddress=http://bookstore-authserver 
      - Redis__Configuration=redis 
    ports: 
      - "44353:443" 
    depends_on: 
      - bookstore-api 
    restart: on-failure 
    volumes: 
      - ./certs:/root/certificate 
    networks: 
      - abp-network 
 
  bookstore-api: 
    image: acme/bookstore-api:latest 
    container_name: bookstore-api 
    hostname: bookstore-api 
    build: 
      context: ../../ 
      dockerfile: src/Acme.BookStore.HttpApi.Host/Dockerfile.local 
    environment: 
      - ASPNETCORE_URLS=https://+:443;http://+:80; 
      - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx 
      - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc 
      - App__SelfUrl=https://localhost:44354 
      - App__HealthCheckUrl=http://bookstore-api/health-status 
      - AuthServer__RequireHttpsMetadata=false 
      - AuthServer__Authority=http://bookstore-authserver 
      - ConnectionStrings__Default=Data Source=sql-server;Initial Catalog=BookStore;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=true;TrustServerCertificate=True; 
      - Redis__Configuration=redis 
    ports: 
      - "44354:443" 
    depends_on: 
      sql-server: 
        condition: service_healthy 
      redis: 
        condition: service_healthy 
    restart: on-failure 
    volumes: 
      - ./certs:/root/certificate 
    networks: 
      - abp-network 
   
  bookstore-authserver: 
    image: acme/bookstore-authserver:latest 
    container_name: bookstore-authserver 
    build: 
      context: ../../ 
      dockerfile: src/Acme.BookStore.AuthServer/Dockerfile.local 
    environment: 
      - ASPNETCORE_URLS=https://+:443;http://+:80; 
      - App__SelfUrl=https://localhost:44334 
      - App__CorsOrigins=https://localhost:44353,https://localhost:44354 
      - AuthServer__RequireHttpsMetadata=false 
      - AuthServer__Authority=http://bookstore-authserver 
      - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx 
      - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc 
      - ConnectionStrings__Default=Data Source=sql-server;Initial Catalog=BookStore;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=true;TrustServerCertificate=True; 
      - Redis__Configuration=redis 
    ports: 
      - "44334:443" 
    depends_on: 
      sql-server: 
        condition: service_healthy 
      redis: 
        condition: service_healthy 
    restart: on-failure 
    volumes: 
      - ./certs:/root/certificate 
    networks: 
      - abp-network 
 
   
  db-migrator: 
    image: acme/bookstore-db-migrator:latest 
    container_name: db-migrator 
    build: 
      context: ../../ 
      dockerfile: src/BookStore.DbMigrator/Dockerfile.local 
    environment: 
      - OpenIddict__Applications__BookStore_Web__RootUrl=https://localhost:44353 
      - OpenIddict__Applications__BookStore_Swagger__RootUrl=https://localhost:44354 
      - ConnectionStrings__Default=Data Source=sql-server;Initial Catalog=BookStore;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=true;TrustServerCertificate=True; 
    depends_on: 
      sql-server: 
        condition: service_healthy 
    networks: 
      - abp-network 
   
  sql-server: 
    container_name: sql-server 
    image: mcr.microsoft.com/mssql/server:2019-latest 
    ports: 
      - "1434:1433" 
    environment: 
      SA_PASSWORD: "myPassw0rd" 
      ACCEPT_EULA: "Y" 
    volumes: 
      - sqldata:/var/opt/mssql 
    networks: 
      - abp-network 
    healthcheck: 
      test: /opt/mssql-tools/bin/sqlcmd -S sql-server -U sa -P "myPassw0rd" -Q "SELECT 1" -b -o /dev/null 
      interval: 10s 
      timeout: 3s 
      retries: 10 
      start_period: 10s 
  redis: 
    container_name: redis 
    image: redis:alpine 
    ports: 
      - "6379:6379" 
    networks: 
      - abp-network 
    healthcheck: 
      test: ["CMD", "redis-cli","ping"] 
volumes: 
  sqldata: 
    name: bookstore_sqldata 
networks: 
  abp-network: 
    name: bookstore-network 
    driver: bridge 

You can try to use this and update as you see fit.

As I indicated in the initial support ticket I am running 7.0.2. However let me take what you outlined and apply it to what my current docker-compose is currently.

We're preparing to guide explaining how to run ABP application using docker-compose on localhost environment. Postgres is not supported currently.

You need to update the docker-compose.yml file and update the sql-server service with a postgres image and update the connectionstrings based on that.

Afterwards, please share the problems you come across.

That is fine but I don't use Postgres inside a container docker. I have a local running postgres db installation and in fact I've had this working for a while.

My main issue is getting the 3 tiers (web, api and auth server) talking to each other within the separate containers. When can I expect this 'guide'? Currently, the generated docker-compose.yml file for a tiered solution only has the 'web' service defined in it, but I'm more concerned about all the url settings needed to run ABP, such as the ones for oidc, etc

We already planned to create deployment guides.

I find this to be abstract. Could you give examples/specifics of the deployment guides you are planning to create? For example for which environments? Azure, AWS or other? Will it be shown for all template types? Tiered vs non tiered, etc. MVC or angular Or Blazor?

The promise of fully comprehensive deployment guides seem almost to good to be true as I have found in reality that you have to rely on researching/learning the specifics for ABP deployments which is not expected when you use a framework that is suppose to eliminate the requirement to know the specifics. For example the docker yml file that is produced when using the ABP cli does not seem to configure everything properly for my local docker deployment, so now I’m forced to dive into the details of docker to figure out what still needs to be tweaked to get it to work.

I would have thought that perhaps you would reach out to the community prior to creating such guides to make sure you were covering the vast number of ways in which the community deploys.

We have found MANY times that the documentation DOES contain the answers to problems we face, but the information is not presented in a way that is obvious to people who are new to ABP.
One suggestion for improving the help would be to select a mid-level developer who has NO experience with ABP, and observe them (without helping) as they try to create a new project (do this do a different person for each 'type' of project). Document the things that cause problems and highlight those things better in the documentation.
A related improvement would be to explain WHY certain things are done the way they are - once you understand the framework this becomes obvious, but when starting out many things can seem overly complicated when you do not understand why.

can you give concrete examples on this?

I have found this to be 100% true. While some of the documentation is very good it is often very time consuming to 'connect the dots' on the 'practical approach' with doing things that should work right out of the box. There is a HUGE learning curve with ABP and I have often find myself refactoring code from back when I started using ABP because I've since learned the 'ABP Way' of doing things.

Additionally, while there are often good blog posts on how to integrate 3rd party controls/libraries with ABP the are just the basic level of integration posts and don't show how to use ABP with some of the classes from these controls. An example was when I was trying to implement custom storage with DevExpress Dashboards and spent the better part of a week going back and forth with support (with provided example of the issue) and was initially told 'I can't use DevExpress Dashboard' with ABP web solution......never an acceptable answer in my opinion. Thankfully we were able to figure out what the cause of the issue was, which was to use the runasync helper class to call a service from on the the inherited DevExpress classes, but the process was painful to get to that point.

we've sent you the related file

Where has the file been sent?

Hi,

Since we are a commercial license owner and thus have all the source code is it possible you can get me the coding fix to this issue so I may have it prior to the end of the year and I'll just apply it to my local version of the source code until I am ready to update my solution to the newest release at the end of the year?

Thanks.

Hi,

And this fix to the bug will be in that specific release?

Hi,

Timeframe please? I need to communicate to my managers when this blocking issue will be resolved

Hi,

Can I get an update in terms of when/what release the fix for this issue will happen in? This is a blocking issue for my development for my company's project.

Showing 71 to 80 of 191 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 20, 2024, 08:30