我正在使用 mono 存储库,并且我想(仅)使用 Cloud Run 服务(使用“官方” google cloud run 操作)部署我的后端。对于此操作,我需要在项目根目录中有一个 Dockerfile 来构建图像。但我的 Dockerfile 在./server.
有没有办法使用类似的working-directory步骤run?我没有从医生那里找到任何东西。
或者我是否必须在项目的根目录中有一个 Dockerfile 并且 Dockerfile 指向./server?
我的项目树:
./
.github/
worflows/
deploy-back.yml
client/
...
server/
...
Dockerfile
Run Code Online (Sandbox Code Playgroud)
./
.github/
worflows/
deploy-back.yml
client/
...
server/
...
Dockerfile
Run Code Online (Sandbox Code Playgroud) google-cloud-platform monorepo github-actions google-cloud-run
在我的工作中,我的任务是搜索并找到解决方案,以在 monorepo 中组织的微服务中实施 ABAC 授权。我们有一些产品,我们使用领域的概念在同一数据库中组织不同客户端的数据。我们的要求可能是:
首先,我想构建一些代码,供每个 API 的每个路由器使用,以验证授权并允许或拒绝请求。像这样的东西:

因此,基于这个问题,我发现 ABAC 可以从应用程序(API)中外部化,并且对我来说很有意义,请参见下图。
但接下来我有一些问题。
按照我在第一张图片或第二张图片中的想法去做是不好的吗?
PDP 如何知道用户想要做什么?根据他呼叫的路线?但通过这种方法,单一责任将会受到损害,因为 PDP 需要内化(步骤 2)其他应用程序的行为,对吧?
PIP需要调用数据库来让PDP验证授权。因此,这可能会很慢,因为相同的查询将执行两次,一次用于检查策略,另一次在服务内部使用业务逻辑。
我有一个具有以下结构的 monorepo:
\nrepo/\n\xe2\x94\x9c\xe2\x94\x80 node_modules/\n\xe2\x94\x9c\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80 packages/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 design-system/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 package.json // dependencies installed in repo/node_modules\n\xe2\x94\x9c\xe2\x94\x80 apps/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 my-app/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 node_modules/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 package.json // dependencies installed in my-app/node_modules\n\nRun Code Online (Sandbox Code Playgroud)\nrepo/packages 包含 repo/apps 中各种应用程序使用的共享包。共享包的依赖项位于 repo/node_modules 中,通过顶层 package.json 中的 Yarn Workspaces 进行管理:
\nrepo/\n\xe2\x94\x9c\xe2\x94\x80 node_modules/\n\xe2\x94\x9c\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80 packages/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 design-system/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 package.json // dependencies installed in repo/node_modules\n\xe2\x94\x9c\xe2\x94\x80 apps/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 my-app/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 node_modules/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 package.json // dependencies installed in my-app/node_modules\n\nRun Code Online (Sandbox Code Playgroud)\nrepo/apps 包含 React Native 应用程序。repo/apps 中的应用程序有自己的本地 node_modules,并且不是 …
我使用以下方法设置了一个基本的可发布库@nrwl/react:
nx g @nrwl/react:lib my-new-lib --publishable --importPath=@myorg/my-new-lib
Run Code Online (Sandbox Code Playgroud)
然后在 monorepo 根目录中安装 MUI:
npm install @mui/material @emotion/react @emotion/styled
Run Code Online (Sandbox Code Playgroud)
并导入了一个MUI组件:
nx g @nrwl/react:lib my-new-lib --publishable --importPath=@myorg/my-new-lib
Run Code Online (Sandbox Code Playgroud)
最后我使用以下方法构建库:
nx run my-new-lib:build
Run Code Online (Sandbox Code Playgroud)
这是生成的package.json:
{
"name": "@myorg/my-new-lib",
"version": "0.0.1",
"module": "./index.js",
"main": "./index.js",
"type": "module",
"types": "./index.d.ts"
}
Run Code Online (Sandbox Code Playgroud)
MUI 依赖项不会添加到生成的package.json.
我缺少什么?
如果您想尝试的话,这里有一个存储库:
我们最近开始使用 Go 来开发新的微服务。每个微服务都是一个 Go 模块,我们将它们作为单一存储库进行管理:
/
services/
s1/
go.mod
main.go
s2/
go.mod
main.go
Run Code Online (Sandbox Code Playgroud)
这工作正常,但现在我们需要在s1和之间共享一些代码s2- 两个服务使用的一些结构、上传到 S3 的函数等。
处理这种情况的正确方法是什么?common理想情况下,我会在存储库根目录( 的同级目录)中有一个目录,并将通用代码放在那里 - 但是 Go 在编译和 时services如何从那里获取代码?s1s2
我正在用来lerna管理我的 monorepo,出于某种原因,当我尝试从根文件夹运行以下命令(使用此处的文档)时:lerna run --scope my-app test我收到 lerna 找不到要运行的模块的以下错误npm test:
lerna notice cli v3.20.2
lerna info versioning independent
lerna notice filter including "my-app"
lerna info filter [ 'my-app' ]
lerna ERR! EFILTER No packages remain after filtering [ 'my-app' ]
Run Code Online (Sandbox Code Playgroud)
我的lerna.json文件有这样的定义:
"packages": [
"app1",
"some-package-with-my-app/*",
"app2",
"app3"
],
Run Code Online (Sandbox Code Playgroud)
我也尝试运行lerna run --scope some-package-with-my-app/my-app test但得到了相同的错误(当然还有相应的过滤器名称)
我究竟做错了什么?我在文档中遗漏了什么吗?
我一直在尝试学习和使用 nwrl nx 框架来创建带有角度应用程序的新单声道存储库。但是,当尝试使用 nx cli 执行任何命令时,我收到以下错误:
at JSON.parse (<anonymous>)
at Object.parseJsonWithComments (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/utils/fileutils.js:43:17)
at new TargetProjectLocator (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/target-project-locator.js:14:46)
at buildExplicitTypeScriptDependencies (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/project-graph/build-dependencies/explicit-project-dependencies.js:7:34)
at buildDependenciesFns.forEach (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/project-graph/project-graph.js:60:41)
at Array.forEach (<anonymous>)
at buildProjectGraph (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/project-graph/project-graph.js:60:26)
at Object.createProjectGraph (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/project-graph/project-graph.js:39:30)
at Object.<anonymous> (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/command-line/run-one.js:15:46)
at Generator.next (<anonymous>)
(node:5280) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:5280) …Run Code Online (Sandbox Code Playgroud) compiler-errors command-line-interface nomachine-nx monorepo
monorepo ×8
npm ×3
lerna ×2
abac ×1
dependencies ×1
go ×1
javascript ×1
node.js ×1
nodemon ×1
nomachine-nx ×1
nrwl-nx ×1
react-native ×1
reactjs ×1
typescript ×1