FROM gradle
USER root
RUN apt-get update && \
apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
apt-key fingerprint 0EBFCD88 && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable" && \
apt-get update && \
apt-get install -y docker-ce docker-ce-cli containerd.io
我是这么说的:
docker container run -v /var/run/docker.sock:/var/run/docker.sock -v <local repo>:/home/gradle/project -w /home/gradle/project --rm mygradle gradle build -i
编辑:这不是因为gradle docker图像,而是任何图像。如果我使用Jenkins运行,并且它是一个容器,这也不起作用。尝试连接到172.x.x.1(主机地址)和公开的端口,但测试没有连接,但访问容器,并使用mysql客户机尝试相同的连接,我可以连接。
我找到了解决办法。
我没有使用MysqlContainer类,而是定义了一个扩展这个类的新类。它将检测应用程序是否在容器中运行,如果是,它将尝试在内部连接到数据库容器,而不是使用本地主机和生成的端口。
public static class IntegrationTestsDatabase<SELF extends MySQLContainer<SELF>> extends MySQLContainer<SELF> {
public IntegrationTestsDatabase() {
}
public IntegrationTestsDatabase(String dockerImageName) {
super(dockerImageName);
}
public String getJdbcUrl() {
String containerIp = ((ContainerNetwork)this.getContainerInfo().getNetworkSettings().getNetworks().values().stream().findFirst().get()).getIpAddress();
return this.isRunningInsideDocker() ? "jdbc:mysql://" + containerIp + ":" + MySQLContainer.MYSQL_PORT + "/" + this.getDatabaseName() : super.getJdbcUrl();
}
public Boolean isRunningInsideDocker() {
try {
Stream stream = Files.lines(Paths.get("/proc/1/cgroup"));
Boolean var2;
try {
var2 = stream.anyMatch((line) -> {
return line.contains("/docker");
});
} catch (Throwable var5) {
if (stream != null) {
try {
stream.close();
} catch (Throwable var4) {
var5.addSuppressed(var4);
}
}
throw var5;
}
if (stream != null) {
stream.close();
}
return var2;
} catch (IOException var6) {
return false;
}
}
}
这将适用于其他容器类型。
问题内容: 我正在尝试使用Ruby on Rails运行Selenium的示例脚本。我必须使用代理运行它。这是我的代码: 我收到以下错误: 有人能帮我吗…?我已经尝试了好几个小时,却找不到问题…真的不知道该怎么办。 环境: Ubuntu 16.04 LTS,Firefox 45.0,rbenv 2.3.1 另一个问题:有人知道Selenium + Ruby on Rails的示例吗?我找不到真正好
我正在尝试连接到MySQL服务器,但出现无法处理的错误。 java.sql.SQLNonTransientConnectionException:无法创建到数据库服务器的连接。尝试重新连接3次。放弃。com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)com.mysql.cj.jdbc.excepti
我真的想不通为什么我不能用下面的代码连接到我的Django项目内的JQuery。你能告诉我是什么原因吗?多谢! null null
我正在尝试使用Android studio提供的工具将我的Android应用程序连接到firebase,但我面临着很多麻烦。 我已经尝试更新依赖到最新的最新的谷歌服务,但错误仍然存在,显示的错误是无法解析Android应用模块的Gradle配置。解决分级生成问题和/或重新同步。 分级/应用程序a
我正在开发Selenium,目前我有一个连接到两个运行linux和所有浏览器的虚拟机的集线器。 我能够启动浏览器,直到它突然停止。火狐或任何其他浏览器都不会启动。我得到以下错误。 45000 ms后无法连接到端口7055上的主机127.0.0.1。 我运行Selenium服务器独立2.26与火狐16.0.2. 请帮忙。
问题内容: 我一直都在连接“ admin”数据库,这是一个固定的错误。 使用Mongoose 5.0.6 MongoDb 3.6并尝试连接到Atlas。 我的问题是,Mongoose 5.0.6依赖哪个驱动程序? 我怎么知道猫鼬什么时候可以修复? 在另一个方向上,有没有一种方法可以与MongoDB连接,然后将其与Mongoose结合使用? 干杯 问题答案: 基本上,您应该尝试使用url链接进行连接