successful docker build

This commit is contained in:
2023-12-02 10:08:05 -06:00
parent 584db6a607
commit ddb4756f4e
6 changed files with 67 additions and 25 deletions

View File

@@ -1,24 +1,43 @@
using Microsoft.AspNetCore.Mvc; using Amazon.S3;
using Microsoft.AspNetCore.Mvc;
using Microsoft.VisualBasic;
using Unbinder.Services; using Unbinder.Services;
namespace Unbinder.Controllers namespace Unbinder.Controllers
{ {
public class HomeController : Controller public class HomeController(ILogger<HomeController> logger) : Controller
{ {
public async Task<IActionResult> Index() public async Task<IActionResult> Index()
{ {
var objects = await S3Service.ListObjects(); try
if (objects != null)
{ {
foreach (var entry in objects.S3Objects) var objects = await S3Service.ListObjects();
if (objects != null)
{ {
Console.WriteLine(entry.Key); string keys = "";
foreach (var entry in objects.S3Objects)
{
keys += entry.Key + ", ";
}
if (keys != "") logger.Log(LogLevel.Information, $"Found keys: {keys ?? "(none)"}");
}
else
{
logger.Log(LogLevel.Debug, "Did not find results in S3");
} }
} }
else catch (Exception ex)
{ {
Console.WriteLine("Did not find results in S3"); if (ex is AmazonS3Exception s3Exception)
{
logger.Log(LogLevel.Warning, s3Exception.ErrorCode);
logger.Log(LogLevel.Warning, s3Exception.Message);
}
else
logger.Log(LogLevel.Error, ex.Message);
} }
return View(); return View();

View File

@@ -2,6 +2,7 @@
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app WORKDIR /app
ENV CLIENT_PORT=${CLIENT_PORT:-8080}
ENV AWS_S3_URL=$AWS_S3_URL ENV AWS_S3_URL=$AWS_S3_URL
ENV AWS_ACCESS_KEY=$AWS_ACCESS_KEY ENV AWS_ACCESS_KEY=$AWS_ACCESS_KEY
ENV AWS_SECRET_KEY=$AWS_SECRET_KEY ENV AWS_SECRET_KEY=$AWS_SECRET_KEY
@@ -15,4 +16,6 @@ RUN dotnet publish -o out
FROM mcr.microsoft.com/dotnet/aspnet:8.0 FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app WORKDIR /app
COPY --from=build /app/out . COPY --from=build /app/out .
EXPOSE $CLIENT_PORT
ENTRYPOINT ["./Unbinder"] ENTRYPOINT ["./Unbinder"]

View File

@@ -6,11 +6,5 @@ ENV ACCEPT_EULA=Y
ENV MSSQL_PID Express ENV MSSQL_PID Express
ENV SA_PASSWORD=$DB_PASSWORD ENV SA_PASSWORD=$DB_PASSWORD
# WORKDIR /db
# COPY ../DB/SQL/create_database.sql .
# run the sql script
# CMD /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P fhhwergaiuh12480y53 -d master -i create_database.sql
# run the command to start sql server # run the command to start sql server
CMD /opt/mssql/bin/sqlservr CMD /opt/mssql/bin/sqlservr

View File

@@ -17,6 +17,8 @@ EnvironmentLoader.Load(builder);
// // By default, all incoming requests will be authorized according to the default policy. // // By default, all incoming requests will be authorized according to the default policy.
// options.FallbackPolicy = options.DefaultPolicy); // options.FallbackPolicy = options.DefaultPolicy);
// configure database
SqlConnectionStringBuilder connBuilder = new() SqlConnectionStringBuilder connBuilder = new()
{ {
ConnectionString = builder.Configuration.GetConnectionString("DefaultConnection"), ConnectionString = builder.Configuration.GetConnectionString("DefaultConnection"),
@@ -54,6 +56,13 @@ builder.Services.AddServerSideBlazor();
var app = builder.Build(); var app = builder.Build();
// apply most recent migration to db
using (IServiceScope scope = app.Services.CreateScope())
{
var db = scope.ServiceProvider.GetRequiredService<UnbinderDbContext>();
db.Database.Migrate();
}
// Configure the HTTP request pipeline. // Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment()) if (!app.Environment.IsDevelopment())
{ {

View File

@@ -7,7 +7,7 @@
"CallbackPath": "/signin-oidc" "CallbackPath": "/signin-oidc"
}, },
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnection": "Server=db;Database=master;User=sa;Encrypt=False;TrustServerCertificate=true" "DefaultConnection": "Server=unbinder-db;Database=master;User ID=sa;Encrypt=False"
}, },
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {

View File

@@ -1,31 +1,48 @@
version: '3.8' version: '3.8'
services: services:
client: unbinder-client:
depends_on: depends_on:
- db - unbinder-db
container_name: unbinder-client
build: build:
context: . context: .
dockerfile: ./Docker/DOTNET.Dockerfile dockerfile: ./Docker/DOTNET.Dockerfile
ports: ports:
- 80:80 - ${CLIENT_PORT}:80
- 8080:8080
environment: environment:
CLIENT_PORT: /run/secrets/CLIENT_PORT
SA_PASSWORD: /run/secrets/SA_PASSWORD SA_PASSWORD: /run/secrets/SA_PASSWORD
AWS_S3_URL: /run/secrets/AWS_S3_URL AWS_S3_URL: /run/secrets/AWS_S3_URL
AWS_ACCESS_KEY: /run/secrets/AWS_ACCESS_KEY AWS_ACCESS_KEY: /run/secrets/AWS_ACCESS_KEY
AWS_SECRET_KEY: /run/secrets/AWS_SECRET_KEY AWS_SECRET_KEY: /run/secrets/AWS_SECRET_KEY
AWS_BUCKET_NAME: /run/secrets/AWS_BUCKET_NAME AWS_BUCKET_NAME: /run/secrets/AWS_BUCKET_NAME
db: networks:
image: mcr.microsoft.com/mssql/server:2022-latest database:
volumes: unbinder-db:
- ./db_data:/var/opt/mssql/data container_name: unbinder-db
build:
context: .
dockerfile: ./Docker/MSSQL.Dockerfile
ports: ports:
- 1433:1433 - 1433:1433
environment: environment:
SA_PASSWORD: /run/secrets/SA_PASSWORD SA_PASSWORD: /run/secrets/SA_PASSWORD
ACCEPT_EULA: "Y" volumes:
- ./db_data:/var/opt/mssql/data
networks:
database:
aliases:
- unbinder-db
networks:
database:
driver: bridge
secrets: secrets:
CLIENT_PORT:
file: ./secrets/CLIENT_PORT.txt
AWS_S3_URL: AWS_S3_URL:
file: ./secrets/AWS_S3_URL.txt file: ./secrets/AWS_S3_URL.txt
AWS_ACCESS_KEY: AWS_ACCESS_KEY: