我最近不得不更新 docker(2.2.0.0 稳定版 42247),现在我dotnet watch在使用docker-compose.
我的工作流程是将解决方案目录(在主机上)挂载到dotnet watch在相关项目上运行的 docker 容器上,初始版本看起来有点像这样:
./docker-compose.yml
version: "3.2"
services:
my-api:
build:
context: $MY_API_LOCATION_ON_HOST # the folder with the .sln file and all projects
dockerfile: $DOCKERFILE_ROOT/Dockerfile-aspcore-dev
args:
PROJECT: app/src/MyApi # Where the .csproj will be
volumes:
- type: bind
source: $MY_API_LOCATION_ON_HOST # the folder with the .sln file and all projects
target: /app
- type: bind
source: $SECRETS_FOLDER # C:\Users\DevUser\AppData\Roaming\Microsoft\UserSecrets
target: /root/.microsoft/usersecrets
Run Code Online (Sandbox Code Playgroud)
./Dockerfile-aspcore-dev
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS base
ARG PROJECT
WORKDIR ${PROJECT} …Run Code Online (Sandbox Code Playgroud) create-react-appusing 自定义了三个react-app-rewired,都使用了以下包的相同版本:
"react": "^16.12.0",
"react-app-rewired": "^2.1.5",
"react-dom": "^16.12.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.3.0",
Run Code Online (Sandbox Code Playgroud)
App 1,“主”应用程序是其他两个应用程序的一个非常简单的外壳public/index.html,看起来像这样:
<body>
<div class="main-app"></div>
<div class="sub-app-1"></div>
<div class="sub-app-2"></div>
<script src="sub-app-1/static/js/bundle.js" async></script>
<script src="sub-app-1/static/js/0.chunk.js" async></script>
<script src="sub-app-1/static/js/main.chunk.js" async></script>
<script src="sub-app-2/static/js/bundle.js" async></script>
<script src="sub-app-2/static/js/0.chunk.js" async></script>
<script src="sub-app-2/static/js/main.chunk.js" async></script>
</body>
Run Code Online (Sandbox Code Playgroud)
这工作得很好,所有三个应用程序都正确呈现。现在需求略有变化sub-app-2,例如<PictureFrame />需要将唯一的组件包含在 中sub-app-1,我在主项目中创建了一个存根组件,如下所示:
const NullPictureFrame = () => {
return <div></div>;
}
export const PictureFrame = (props: Props) => {
const forceUpdate = useForceUpdate();
useEventListener(window, "PictureFrameComponent.Initialized" as string, () …Run Code Online (Sandbox Code Playgroud)