Browse Source

Migration method changed to reduce the size of the image

pull/961/head
Atakan Özceviz 7 years ago
parent
commit
b2058277f9
  1. 15
      templates/service/database/Dockerfile
  2. 12
      templates/service/database/entrypoint.sh
  3. 9
      templates/service/docker-compose.migrations.yml

15
templates/service/database/Dockerfile

@ -1,19 +1,18 @@
FROM microsoft/dotnet:2.2-sdk-alpine AS build
RUN apk add --no-cache bash
COPY . .
WORKDIR /templates/service/host/IdentityServerHost
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release
RUN dotnet restore
RUN dotnet ef migrations script -i -o migrations-IdentityServerHost.sql
WORKDIR /templates/service/host/MyCompanyName.MyProjectName.Host
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release
RUN dotnet restore
RUN dotnet ef migrations script -i -o migrations-MyProjectName.sql
FROM build AS final
FROM mcr.microsoft.com/mssql-tools AS final
WORKDIR /src
COPY --from=build /templates/service/host/IdentityServerHost ./IdentityServerHost
COPY --from=build /templates/service/host/MyCompanyName.MyProjectName.Host ./MyCompanyName.MyProjectName.Host
COPY --from=build /templates/service/host/IdentityServerHost/migrations-IdentityServerHost.sql migrations-IdentityServerHost.sql
COPY --from=build /templates/service/host/MyCompanyName.MyProjectName.Host/migrations-MyProjectName.sql migrations-MyProjectName.sql
COPY --from=build /templates/service/database/entrypoint.sh .
RUN /bin/bash -c "sed -i $'s/\r$//' entrypoint.sh"
RUN chmod +x ./entrypoint.sh

12
templates/service/database/entrypoint.sh

@ -1,12 +1,12 @@
#!/bin/bash
cd IdentityServerHost
export ConnectionStrings__Default=$IdentityServerConnectionString
until dotnet ef database update --no-build; do
until /opt/mssql-tools/bin/sqlcmd -S sqlserver -U SA -P $SA_PASSWORD -Q 'SELECT name FROM master.sys.databases'; do
>&2 echo "SQL Server is starting up"
sleep 1
done
export ConnectionStrings__Default=$MyProjectNameConnectionString
cd MyCompanyName.MyProjectName.Host && dotnet ef database update --no-build
/opt/mssql-tools/bin/sqlcmd -S sqlserver -U SA -P $SA_PASSWORD -Q "CREATE DATABASE [$IdentityServer_DB]"
/opt/mssql-tools/bin/sqlcmd -S sqlserver -U SA -P $SA_PASSWORD -Q "CREATE DATABASE [$MyProjectName_DB]"
/opt/mssql-tools/bin/sqlcmd -d $IdentityServer_DB -S sqlserver -U sa -P $SA_PASSWORD -i migrations-IdentityServerHost.sql
/opt/mssql-tools/bin/sqlcmd -d $MyProjectName_DB -S sqlserver -U sa -P $SA_PASSWORD -i migrations-MyProjectName.sql

9
templates/service/docker-compose.migrations.yml

@ -1,12 +1,13 @@
version: '3.4'
services:
services:
migrations:
build:
context: ../../
dockerfile: templates/service/database/Dockerfile
dockerfile: templates/service/database/Dockerfile
depends_on:
- sqlserver
environment:
- IdentityServerConnectionString=Server=sqlserver;Database=MyProjectName_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false
- MyProjectNameConnectionString=Server=sqlserver;Database=MyProjectName_ModuleDb;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false
- IdentityServer_DB=MyProjectName_Identity
- MyProjectName_DB=MyProjectName_ModuleDb
- SA_PASSWORD=yourStrong(!)Password

Loading…
Cancel
Save