我正在使用 docker-composeWSL环境中使用 docker-compose 。我注意到正在运行的 docker 容器创建的一些文件显示为 user=root 和 group=root。如何更改 docker-compose 以在当前 UID 和 GID 下创建新文件?
我注意到在WSLbash shell 中,我可以作为普通用户删除 root:root 拥有的文件,而无需 sudo。相反,正在运行的 docker 容器无法删除文件,即使该文件不属于 root。
这些文件位于/mnt/c/projects-new/...或位于 Windows 中c:\projects-new.
/etc/wsl.conf
[network]
generateResolvConf = true
Run Code Online (Sandbox Code Playgroud)
在您提问之前,Linux 权限的元数据定义在/etc/fstab:
LABEL=cloudimg-rootfs / ext4 defaults 0 0
C: /mnt/c drvfs defaults,metadata 0 0
Run Code Online (Sandbox Code Playgroud)
我在用着Win 10 20H2 (OS Buidl 19042.928) WSL Version 2
猫 /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu …Run Code Online (Sandbox Code Playgroud) 我为 Eclipse 安装了 junit-tools 以简化 JUnit 测试的创建。工具生成的测试类有@MethodRef 注释,但无法解析,我找不到jar 文件,甚至找不到要添加的Maven 依赖项。我也不知道完全限定的包名称是什么。在我对它进行任何修改之前,问题在于生成的文件。
关于插件: http ://junit-tools.org/index.php 插件名称:org.junit.tools 版本:1.1.0.201811090440 插件 ID:org.junit.tools
Eclipse 版本:版本:2018-09 (4.9.0) 内部版本号:20180917-1800
违规代码是 C:\eclipse-workspaces\jdbvc\dbvcs\src\test\java\com\enormacorp\dbvcs\model\ConnectionInformationTest.java
package com.enormacorp.dbvcs.model;
import javax.annotation.Generated;
import org.junit.Test;
@Generated(value = "org.junit-tools-1.1.0")
public class ConnectionInformationTest {
private ConnectionInformation createTestSubject() {
return new ConnectionInformation();
}
@MethodRef(name = "getJdbcDriverClassName", signature = "()QString;")
@Test
public void testGetJdbcDriverClassName() throws Exception {
ConnectionInformation testSubject;
String result;
// default test
testSubject = createTestSubject();
result = testSubject.getJdbcDriverClassName();
}
@MethodRef(name = "setJdbcDriverClassName", signature = "(QString;)V")
@Test
public void …Run Code Online (Sandbox Code Playgroud) 我的 Express 应用程序调用 request.isAuthenticated() 方法。但是,我不知道它会检查什么来确定它是否经过身份验证。我的应用程序需要通过 OIDC 进行身份验证。如何告诉 isAuthenticated() 方法它通过了 OIDC 身份验证?
目前,我将其设置为重定向到具有适当 client_id、范围的 OIDC 授权端点。用户的浏览器遵循重定向,用户成功登录。OIDC 将重定向发送回我的 Express 应用程序提供的回调。用户浏览器成功到达此端点。
我的综合文件在下面的一篇文章中。因为我是 Node 的新手,所以它比我想要的要草率。另外,因为我无法让 Visual Code 捕获我的断点(请参阅我的其他相关帖子),所以我只能使用 console.log 语句进行调试。
如果我在浏览器中访问 /cost-recovery,它会转到以下路线:
app.use('/cost-recovery*', saveUrlInSession, /*ensureAuthenticated*/ isLoggedIn,createProxyMiddleware(sprint_cost_recovery_options));
Run Code Online (Sandbox Code Playgroud)
它将 URL 保存在会话中,允许回调到达我想要的地方。这样可行。在 EnsureAuthenticated 和 isLoggerdIn 处理程序中,系统重定向到 OIDC/OpenId/?? ID登录页面。我可以登录,然后返回到我的回调页面。在该回调路由中,req.isAuthenticated()仍然显示 false。
也许因为我正在使用这个护照模块,所以它不知道登录发生了。正在设置 cookie,在紧要关头我可以检查它们来代替工作 req.isAuthenticated() 方法,但我宁愿使用提供的工具。
/**
* How the application respond to clients requests depending of the endpoint
*/
const userController = require('../controllers/userController');
var OpenIDConnectStrategy = require('passport-ci-oidc').IDaaSOIDCStrategy;
const strategyConfiguration = require('../../config/strategy.json');
console.log('strategyConfiguration=' + JSON.stringify(strategyConfiguration));
const passport = …Run Code Online (Sandbox Code Playgroud) 我在 WSL 之上使用 Windows 10 和 Ubuntu。Eclipse 和 Code 等工具作为传统 Windows 应用程序运行。我开发的服务器在 WSL 上运行;他们推出 Tomcat 和 NodeJS 服务器。问题是 Windows 看不到 Ubuntu 端口,并且 WSL 看不到 Windows 服务。
我相信 WSL 启动时就好像它是一台单独的机器一样,因此端口不同。是否可以让它共享主机网络?理想情况下,如果我在 Window 控制台中运行 netstat,我会看到 Tomcat 和 Node 服务器在 WSL 下启动,反之亦然。如果没记错的话,如果我使用 VirtualBox 将 Ubuntu 作为虚拟机运行,这是可能的。
我对 Docker 有类似的问题,但在这种情况下,我对非 Docker 相关服务特别感兴趣。
跟进:根据以下问题,我有 WSL 2:
wsl -l -v 名称状态版本 * Ubuntu-20.04 正在运行 2 openSUSE-Leap-15-1 已停止 2 docker-desktop-data 正在运行 2 fedoraremix 已停止 2 docker-desktop 正在运行 2
我有一个像这样的 bash 脚本
#!/bin/bash
DATABASE_NAME=my_database
export DATABASE_NAME
run_some_other_command
Run Code Online (Sandbox Code Playgroud)
他们首先声明变量并将其设置为一个值,然后在单独的行中将其导出。就我个人而言,我喜欢只用一行来做:
export DATABASE_NAME=my_database
Run Code Online (Sandbox Code Playgroud)
有一些风格规则反对这种做法吗?我见过别人把报关和出口分开,但不知道为什么。
如果有帮助的话,这个脚本可以在 Linux Mint 上运行,但也可以在其他 Linux 甚至 Mac 上运行。
在非常古老的日子里,曾经有一种方法可以“停止”或“杀死”线程,尽管由于它导致系统不稳定,这种方法已被弃用。但我注意到,可以“取消”正在运行的未来。之所以有引号,是因为我不知道在操作系统级别如何处理线程。
对于我的教育,取消 Future、有效取消线程和停止线程之间有什么区别?为什么取消可以,但过去停止/杀死线程却不好?