我很想在我们的基础设施中以某种方式运行 pgadmin4,在 docker build/1.st 启动期间预配置 postgres 服务器。
我试图/var/lib/pgadmin/pgadmin4.db在第一次启动时修改内部使用的sqlite DB,但这会导致 UI 出现错误(一旦选择了特定的 postgres 服务器:
未找到服务“”的定义
我试过以下:
目录结构:
find ./ -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
|____
|____dump
| |____servergroup.csv
| |____server.csv
| |____import_db.sh
|____Dockerfile
Run Code Online (Sandbox Code Playgroud)
在哪里Dockerfile:
cat Dockerfile
# rebuild:
# docker build -t pgadmin4:3.0-custom .
# run:
# docker run --rm -it -e PGADMIN_DEFAULT_EMAIL=admin -e PGADMIN_DEFAULT_PASSWORD=admin -p8081:80 docker build -t pgadmin4:3.0-custom
FROM dpage/pgadmin4:3.0
COPY dump/ /dump
RUN \
apk add --no-cache sqlite && \
chmod +x /dump/import_db.sh …Run Code Online (Sandbox Code Playgroud) 我正在尝试执行以下Spring"Hello World"示例,该示例使用FileSystemXmlApplicationContext作为ApplicationContext接口的实现.
此实现必须将XML bean配置的完整路径作为构造函数参数,类似于前面的示例:
ApplicationContext context = new FileSystemXmlApplicationContext("C:/Users/ZARA/workspace/HelloSpring/src/Beans.xml");
Run Code Online (Sandbox Code Playgroud)
我使用Linux和我的豆子的配置文件是以下路径: /home/andrea/Documents/ws/myapplicationcontextexample/src/main/java/Beans.xml,所以在我的代码有:
ApplicationContext context = new FileSystemXmlApplicationContext("/home/andrea/Documents/ws/myapplicationcontextexample/src/main/java/Beans.xml");
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试运行我的应用程序时,在STS\Eclipse控制台中,我有以下错误消息(似乎找不到该文件):
INFO: Loading XML bean definitions from file [/home/andrea/Documents/ws/myapplicationcontextexample/home/andrea/Documents/ws/myapplicationcontextexample/src/main/java/Beans.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [/home/andrea/Documents/ws/myapplicationcontextexample/home/andrea/Documents/ws/myapplicationcontextexample/src/main/java/Beans.xml]; nested exception is java.io.FileNotFoundException: home/andrea/Documents/ws/myapplicationcontextexample/src/main/java/Beans.xml (File o directory non esistente)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84) …Run Code Online (Sandbox Code Playgroud) 我想pg_catalog.pg_cast从受限用户(在 Postgres 9.3 上)进行更新。
但是运行我需要的查询:
update pg_cast set castcontext = 'i' where oid in ( select c.oid from pg_cast c inner join pg_type src on src.oid = c.castsource inner join pg_type tgt on tgt.oid = c.casttarget where src.typname like 'int%' and tgt.typname like 'bool%');
Run Code Online (Sandbox Code Playgroud)
最终出现错误:
ERROR: permission denied for relation pg_cast
Run Code Online (Sandbox Code Playgroud)
但是权限似乎设置正确。请参阅我从创建数据库和用户到查询为止所做的步骤:
psql -c "create database test1 WITH ENCODING 'UTF8' LC_COLLATE='en_GB.UTF8' LC_CTYPE='en_GB.UTF8' TEMPLATE=template0;" -U postgres
psql -U postgres test1;
test1=# CREATE USER test1 PASSWORD 'test1';
test1=# GRANT ALL …Run Code Online (Sandbox Code Playgroud) 我很想在gradle项目中过滤特定的Java资源。如果某些文件只应替换了内容,则还应重命名一些文件(并替换了不同的内容)。
我的gradle Java项目设置是:
> cat build.gradle
apply plugin: 'java'
sourceSets {
main {
java {
resources {
srcDirs = [ "foo" ]
include '**/**'
}
}
}
}
processResources {
include '**/file_a.txt'
filter { String line ->
line
.replace("foo", "fool" )
}
}
processResources {
include '**/file_b.txt'
rename { "file_c.txt" }
filter { String line ->
line
.replace("ipsum", "zzz" )
}
}
> cat foo/file_a.txt
my name is foo
test ipsum
> cat foo/file_b.txt
lorem ipsum ...
Run Code Online (Sandbox Code Playgroud)
一旦运行:
Gradle构建
我得到: …
java ×2
postgresql ×2
docker ×1
gradle ×1
permissions ×1
pgadmin-4 ×1
spring ×1
spring-mvc ×1
sql-grant ×1