diff --git a/build.ps1 b/build.ps1 index 0d3d3f37a..b5c6a018b 100644 --- a/build.ps1 +++ b/build.ps1 @@ -10,5 +10,6 @@ echo "==================" & $dir\util\Nginx\build.ps1 & $dir\util\Attachments\build.ps1 & $dir\src\Icons\build.ps1 +& $dir\src\Admin\build.ps1 & $dir\util\MsSql\build.ps1 & $dir\util\Setup\build.ps1 diff --git a/build.sh b/build.sh index d15591623..eb880a810 100644 --- a/build.sh +++ b/build.sh @@ -17,6 +17,7 @@ then docker push bitwarden/server:$TAG docker push bitwarden/attachments:$TAG docker push bitwarden/icons:$TAG + docker push bitwarden/admin:$TAG docker push bitwarden/nginx:$TAG docker push bitwarden/mssql:$TAG docker push bitwarden/setup:$TAG @@ -31,6 +32,7 @@ then docker tag bitwarden/server bitwarden/server:$TAG docker tag bitwarden/attachments bitwarden/attachments:$TAG docker tag bitwarden/icons bitwarden/icons:$TAG + docker tag bitwarden/admin bitwarden/admin:$TAG docker tag bitwarden/nginx bitwarden/nginx:$TAG docker tag bitwarden/mssql bitwarden/mssql:$TAG docker tag bitwarden/setup bitwarden/setup:$TAG @@ -56,6 +58,9 @@ else chmod u+x $DIR/src/Icons/build.sh $DIR/src/Icons/build.sh + chmod u+x $DIR/src/Admin/build.sh + $DIR/src/Admin/build.sh + chmod u+x $DIR/util/MsSql/build.sh $DIR/util/MsSql/build.sh diff --git a/src/Admin/.dockerignore b/src/Admin/.dockerignore new file mode 100644 index 000000000..7e37ce5d9 --- /dev/null +++ b/src/Admin/.dockerignore @@ -0,0 +1,4 @@ +* +!obj/Docker/publish/* +!obj/Docker/empty/ +!entrypoint.sh diff --git a/src/Admin/Dockerfile b/src/Admin/Dockerfile new file mode 100644 index 000000000..914d81be5 --- /dev/null +++ b/src/Admin/Dockerfile @@ -0,0 +1,9 @@ +FROM microsoft/aspnetcore:2.0.5 + +WORKDIR /app +EXPOSE 80 +COPY obj/Docker/publish . + +COPY entrypoint.sh / +RUN chmod +x /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] diff --git a/src/Admin/build.ps1 b/src/Admin/build.ps1 new file mode 100644 index 000000000..41688f52f --- /dev/null +++ b/src/Admin/build.ps1 @@ -0,0 +1,14 @@ +$dir = Split-Path -Parent $MyInvocation.MyCommand.Path + +echo "`n## Building Admin" + +echo "`nBuilding app" +echo ".NET Core version $(dotnet --version)" +echo "Clean" +dotnet clean $dir\Admin.csproj -f netcoreapp2.0 -c "Release" -o $dir\obj\Docker\publish +echo "Publish" +dotnet publish $dir\Admin.csproj -f netcoreapp2.0 -c "Release" -o $dir\obj\Docker\publish + +echo "`nBuilding docker image" +docker --version +docker build -t bitwarden/admin $dir\. diff --git a/src/Admin/build.sh b/src/Admin/build.sh new file mode 100644 index 000000000..7be1a0713 --- /dev/null +++ b/src/Admin/build.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +set -e + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +echo -e "\n## Building Admin" + +echo -e "\nBuilding app" +echo ".NET Core version $(dotnet --version)" +echo "Clean" +dotnet clean $DIR/Admin.csproj -f netcoreapp2.0 -c "Release" -o $DIR/obj/Docker/publish +echo "Publish" +dotnet publish $DIR/Admin.csproj -f netcoreapp2.0 -c "Release" -o $DIR/obj/Docker/publish + +echo -e "\nBuilding docker image" +docker --version +docker build -t bitwarden/admin $DIR/. diff --git a/src/Admin/entrypoint.sh b/src/Admin/entrypoint.sh new file mode 100644 index 000000000..38703b522 --- /dev/null +++ b/src/Admin/entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +dotnet /app/Admin.dll diff --git a/util/Setup/DockerComposeBuilder.cs b/util/Setup/DockerComposeBuilder.cs index 6b171ea8d..c28f4f168 100644 --- a/util/Setup/DockerComposeBuilder.cs +++ b/util/Setup/DockerComposeBuilder.cs @@ -145,6 +145,16 @@ services: - global.env - ../env/global.override.env + admin: + image: bitwarden/admin:{CoreVersion} + container_name: bitwarden-admin + restart: always + volumes: + - ../core:/etc/bitwarden/core + env_file: + - global.env + - ../env/global.override.env + icons: image: bitwarden/icons:{CoreVersion} container_name: bitwarden-icons diff --git a/util/Setup/NginxConfigBuilder.cs b/util/Setup/NginxConfigBuilder.cs index 06f058e18..cfdb13ef1 100644 --- a/util/Setup/NginxConfigBuilder.cs +++ b/util/Setup/NginxConfigBuilder.cs @@ -193,6 +193,10 @@ server {{ location /icons/ {{ proxy_pass http://icons/; }} + + location /admin/ {{ + proxy_pass http://admin/; + }} }}"); } }