Cleaned up, tested and documented --dbu-platform
This commit is contained in:
parent
aa1c2422ef
commit
d210c6ac7c
@ -2,7 +2,6 @@ using System.CommandLine;
|
||||
using Humanizer;
|
||||
using MycroForge.CLI.CodeGen;
|
||||
using MycroForge.Core.Contract;
|
||||
using MycroForge.CLI.Extensions;
|
||||
using MycroForge.Core;
|
||||
|
||||
namespace MycroForge.CLI.Commands;
|
||||
|
@ -2,7 +2,6 @@ using System.CommandLine;
|
||||
using Humanizer;
|
||||
using MycroForge.CLI.CodeGen;
|
||||
using MycroForge.Core.Contract;
|
||||
using MycroForge.CLI.Extensions;
|
||||
using MycroForge.Core;
|
||||
|
||||
namespace MycroForge.CLI.Commands;
|
||||
|
@ -1,7 +1,5 @@
|
||||
using System.CommandLine;
|
||||
using Humanizer;
|
||||
using MycroForge.Core.Contract;
|
||||
using MycroForge.CLI.Extensions;
|
||||
using MycroForge.Core;
|
||||
|
||||
namespace MycroForge.CLI.Commands;
|
||||
|
@ -1,7 +1,6 @@
|
||||
using MycroForge.CLI.CodeGen;
|
||||
using MycroForge.CLI.Commands;
|
||||
using MycroForge.Core;
|
||||
using MycroForge.Core.Extensions;
|
||||
|
||||
namespace MycroForge.CLI.Features;
|
||||
|
||||
@ -58,8 +57,7 @@ public sealed partial class Db : IFeature
|
||||
" - '%app_name%_mariadb:/var/lib/mysql'",
|
||||
"",
|
||||
" %app_name%_phpmyadmin:",
|
||||
" image: phpmyadmin/phpmyadmin",
|
||||
" platform: %dbu_platform%",
|
||||
" image: %dbu_platform%/phpmyadmin",
|
||||
" container_name: %app_name%_phpmyadmin",
|
||||
" ports:",
|
||||
" - '${DBU_PORT}:80'",
|
||||
@ -127,7 +125,7 @@ public sealed partial class Db : IFeature
|
||||
|
||||
var dockerCompose = string.Join('\n', DockerCompose)
|
||||
.Replace("%app_name%", appName)
|
||||
.Replace("%dbu_platform%", options.DbuPlatform.ToDockerPlatformString())
|
||||
.Replace("%dbu_platform%", options.DbuPlatform.ToString())
|
||||
;
|
||||
|
||||
await context.CreateFile($"{FeatureName}.docker-compose.yml", dockerCompose);
|
||||
|
@ -1,19 +0,0 @@
|
||||
using System.Reflection;
|
||||
using MycroForge.Core.Attributes;
|
||||
|
||||
namespace MycroForge.Core.Extensions;
|
||||
|
||||
public static class EnumExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// A generic extension method that aids in reflecting
|
||||
/// and retrieving any attribute that is applied to an `Enum`.
|
||||
/// </summary>
|
||||
public static string ToDockerPlatformString(this ProjectConfig.DbConfig.DbuPlatformOptions value)
|
||||
{
|
||||
return value.GetType()
|
||||
.GetMember(value.ToString())
|
||||
.FirstOrDefault()!
|
||||
.GetCustomAttribute<DockerPlatformAttribute>()!.Platform;
|
||||
}
|
||||
}
|
@ -1,6 +1,4 @@
|
||||
using MycroForge.Core.Attributes;
|
||||
|
||||
namespace MycroForge.Core;
|
||||
namespace MycroForge.Core;
|
||||
|
||||
public partial class ProjectConfig
|
||||
{
|
||||
@ -8,20 +6,11 @@ public partial class ProjectConfig
|
||||
{
|
||||
public enum DbuPlatformOptions
|
||||
{
|
||||
[DockerPlatform(Platform = "linux/amd64")]
|
||||
linux_amd64,
|
||||
|
||||
[DockerPlatform(Platform = "linux/arm32/v5")]
|
||||
linux_arm32v5,
|
||||
|
||||
[DockerPlatform(Platform = "linux/arm32/v6")]
|
||||
linux_arm32v6,
|
||||
|
||||
[DockerPlatform(Platform = "linux/arm32/v7")]
|
||||
linux_arm32v7,
|
||||
|
||||
[DockerPlatform(Platform = "linux/arm64/v8")]
|
||||
linux_arm64v8
|
||||
amd64,
|
||||
arm32v5,
|
||||
arm32v6,
|
||||
arm32v7,
|
||||
arm64v8
|
||||
}
|
||||
}
|
||||
}
|
4
MycroForge.Core/scripts/publish-nuget.sh
Normal file
4
MycroForge.Core/scripts/publish-nuget.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
dotnet build -r Release
|
||||
dotnet nuget push --source devdisciples bin/Release/MycroForge.Core.1.0.0.nupkg
|
@ -31,8 +31,7 @@ dotnet nuget add source --name devdisciples --username username --password passw
|
||||
### TODO
|
||||
|
||||
- Fix `-c` option for `m4g db generate entity`
|
||||
- Mention `--dbu-platform` option for `m4g init`
|
||||
- Research if System.CommandLine middleware can be used to safeguard commands like `m4g add` or `m4g api`.
|
||||
- Fix up exception handling
|
||||
- Clean up README files
|
||||
-
|
||||
- Print the path of generated files.
|
@ -19,6 +19,6 @@ Options:
|
||||
--api-port <api-port> The API port
|
||||
--database-host-port, --dbh-port <database-host-port> The database host port
|
||||
--database-ui-port, --dbu-port <database-ui-port> The database UI port
|
||||
--database-ui-platform, --dbu-platform <linux_amd64|linux_arm32v5|linux_arm32v6|linux_arm32v7|linux_arm64v8> The docker platform for the PhpMyAdmin image
|
||||
--database-ui-platform, --dbu-platform <amd64|arm32v5|arm32v6|arm32v7|arm64v8> The docker platform for the PhpMyAdmin image
|
||||
-?, -h, --help Show help and usage information
|
||||
```
|
||||
|
@ -36,13 +36,22 @@ This command starts the services defined in the `db.docker-compose.yml` file.
|
||||
You can verify that the services are up by running `docker container ls`. If everything went well, then the previous
|
||||
command should output the service names defined in `db.docker-compose.yml`.
|
||||
|
||||
If you go to [PhpMyAdmin (i.e. http://localhost:5051)](http://localhost:5051), you should now be able to login with the
|
||||
Go to [PhpMyAdmin (i.e. http://localhost:5051)](http://localhost:5051). You should now be able to login with the
|
||||
following credentials.
|
||||
- user: root
|
||||
- pass: password
|
||||
|
||||
When you're done developing, you can shut down the local database by running `m4g db stop`
|
||||
|
||||
:::info
|
||||
|
||||
If you're running on MacOS, Docker might complain about a platform mismatch for PhpMyAdmin.
|
||||
In that case you might need to specify the platform for the PhpMyAdmin image.
|
||||
You can do this by passing the `--dbu-platform` flag to `m4g init`.
|
||||
Run `m4g init -?` for all the available options.
|
||||
If you've already initialized a project, you can also change the platform prefix of the PhpMyAdmin image in the `db.docker-compose.yml`.
|
||||
|
||||
:::
|
||||
|
||||
### Create the entities
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user