我正在尝试在我的 docker-compose 中提升服务以使用 postgres,我可以正确提升容器,问题是它不允许我使用我在环境变量中设置的密码进行身份验证
这是我的 docker-compose 服务:
version: "3"
services:
api:
build:
context: .
dockerfile: docker/nodejs/Dockerfile
ports:
- "3000:3000"
volumes:
- .:/app
links:
- postgresql
postgresql:
image: postgres:11-alpine
restart: always
environment:
POSTGRES_PASSWORD: 00000000
volumes:
- ~/docker/postgresql:/var/lib/postgresql/data
ports:
- "5432:5432"
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?我试图进入 pgadmin。在控制台中向我显示错误:
password authentication failed for user "postgres"
Password does not match for user "postgres".
Run Code Online (Sandbox Code Playgroud) 我正在将文件从 xlsx 格式转换为 json,我可以正确完成,但我无法让它显示空的单元格,只需忽略它们。我正在使用 XLSX 库。这是我进行解析的代码。
const workbook = XLSX.readFile(filename);
const sheet_name_list = workbook.SheetNames;
let jsonPagesArray = [];
sheet_name_list.forEach(function(sheet) {
const jsonPage = {
name: sheet,
content: XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
};
jsonPagesArray.push(jsonPage);
});
res.json(
{
data:jsonPagesArray
}
);
});
Run Code Online (Sandbox Code Playgroud)
实际上,如果给这个:
xxx1 | xxx2 | xxx3
------------------
yyyy | yyyy |
zzzz | zzzz | zzzz
Run Code Online (Sandbox Code Playgroud)
它返回我:
[
{
xxx1:yyyy,
xxx2:yyyy
}
],
[
{
xxx1:zzzz,
xxx2:zzzz,
xxx3:zzzz
}
]
Run Code Online (Sandbox Code Playgroud)
我希望它返回给我这样的东西:
[
{
xxx1:yyyy,
xxx2:yyyy,
xxx3:""
}
],
[
{
xxx1:zzzz,
xxx2:zzzz,
xxx3:zzzz …Run Code Online (Sandbox Code Playgroud) 我为我的 spring 项目制作了 docker-compose 和 dockerfile,但它在 Maven 构建阶段失败,因为正在尝试与 postgres 服务建立连接,我不知道如何解决它。
这是我的 docker-compose 文件:
version: '3'
services:
postgres:
build:
context: .
dockerfile: docker/postgres/Dockerfile
restart: always
environment:
POSTGRES_DB: ${postgres_database}
POSTGRES_USER: ${postgres_username}
POSTGRES_PASSWORD: ${postgres_password}
ports:
- '5432:5432'
volumes:
- ./pgdata:/var/lib/postgresql/data
api:
build:
context: .
dockerfile: docker/jdk/Dockerfile
restart: always
environment:
postgres_database: ${postgres_database}
postgres_username: ${postgres_username}
postgres_password: ${postgres_password}
ports:
- '8100:8080'
depends_on:
- postgres
Run Code Online (Sandbox Code Playgroud)
我的 postgres dockerfile:
FROM postgres:11-alpine
ENV POSTGRES_DB: ${POSTGRES_DB}
ENV POSTGRES_USER: ${POSTGRES_USER}
ENV POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
COPY ./docker/postgres/init.sql /docker-entrypoint-initdb.d
EXPOSE 5432
Run Code Online (Sandbox Code Playgroud)
我的 jdk dockerfile …
我有一个带有 mysql 服务的 docker-compose,当我与 mysql 工作台建立连接时它工作正常,但是当我尝试与我的 symfony 应用程序连接时,它给我一个连接被拒绝的错误。
正确设置主机、端口、用户和密码。
这是我的作文:
version: "3.1"
services:
mysql:
build:
context: .
dockerfile: docker/mysql/Dockerfile
restart: always
working_dir: /app
volumes:
- .data:/usr/data
environment:
- MYSQL_ROOT_PASSWORD=000000
- MYSQL_DATABASE=my_database
- MYSQL_USER=admin
- MYSQL_PASSWORD=000000
ports:
- "3200:3306"
webserver:
image: nginx:alpine
working_dir: /app
volumes:
- .:/app
- ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- '8000:80'
depends_on:
- php-fpm
php-fpm:
build: docker/php-fpm
working_dir: /app
volumes:
- .:/app
- ./docker/php-fpm/php-ini-overrides.ini:/etc/php/7.3/fpm/conf.d/99-overrides.ini
links:
- mysql
depends_on:
- mysql
Run Code Online (Sandbox Code Playgroud)
这是 mysql 的 dockerfile:
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
ENV MYSQL_DATABASE=${MYSQL_DATABASE} …Run Code Online (Sandbox Code Playgroud) 我有一个DocumentTypeDetector带有detectForRequest()方法的类。我正在做相应的测试,但是我无法验证是否抛出了定制的异常,我正在使用JUNIT 5。
我在这里进行了评论,但是答案并没有帮助我,这是我在以下示例中编写的代码:
@Test
public void tryThrowExceptionForInvalidRequest() throws Exception{
InvalidInputRequestType exceptionThrown = Assertions.assertThrows(
InvalidInputRequestType.class,
() -> {
throw new InvalidInputRequestType("La petición debe estar en un formato valido JSON o XML");
}
);
assertEquals("La petición debe estar en un formato valido JSON o XML", exceptionThrown.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
但这并不能告诉我有关测试的任何信息
我需要验证我的方法是否返回了相应的异常,如下所示:
@Test
public void tryThrowExceptionForInvalidRequest() throws Exception{
String invalid = "Este es un request invalido";
assertIsThrown(InvalidInputRequestType.class, detector.detectForRequest(invalid));
}
Run Code Online (Sandbox Code Playgroud)
我该如何测试?
我制作了以下 dockerfile 来包含我的 node js 应用程序,问题是构建 dockerfile 时出现错误:
Sending build context to Docker daemon 2.048kB
Step 1/7 : FROM node:10
---> 0d5ae56139bd
Step 2/7 : WORKDIR /usr/src/app
---> Using cache
---> 5bfc0405d8fa
Step 3/7 : COPY package.json ./
COPY failed: stat /var/lib/docker/tmp/docker-
builder803334317/package.json: no such file or directory
Run Code Online (Sandbox Code Playgroud)
这是我的 dockerfile:
FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
我执行了命令:sudo docker build - < Dockerfile
进入我的根项目文件夹。
我的项目文件夹很简单,像这样:
-Project
-app.js …Run Code Online (Sandbox Code Playgroud) 我正在学习原生的反应并更多地了解javascript,所以我仍然不了解很多关于它的行为的事情.我创建了一个按钮组件,使用TouchableOpacity,它的道具onPress.为了它的工作,我必须发送我想要执行的功能作为道具,但在这里,由于我的经验,我已经下降.
我正在发送一个console.log,当我按下按钮时,它会被激活.所以我直接在我定义的道具中传递了console.log,但是当我点击按钮时它没有用,但是,它在代码初始化时执行了.另一方面,当我通过包含console.log的箭头函数时,它在单击按钮时执行.
为了更清楚,我将展示我的代码:
这是我的按钮组件:
const Button = ({ onUserPress, children, color }) => {
const state = {
};
return (
<TouchableOpacity onPress={ onUserPress } style={styles.buttonStyle} >
<Text style={styles.textStyle}>
{children}
</Text>
</TouchableOpacity>
);
};
Run Code Online (Sandbox Code Playgroud)
我称之为:
<Button onUserPress={ console.log("hello") }>Something</Button>
Run Code Online (Sandbox Code Playgroud)
这是在初始化我的应用程序时执行的,按下按钮时没有任何反应.
另一方面,当我使用相同的组件,但我在arrow函数中传递console.log,如下所示:
<Button onUserPress={ ()=>{console.log("hello")} }>Something</Button>
Run Code Online (Sandbox Code Playgroud)
这只有当我按下按钮组件时才执行控制台日志.
有人可以向我解释为什么行为不同?函数式编程的世界对我来说是全新的,这些事情对我来说似乎很奇怪.根据我的理解,两者都是功能,所以对我来说它们并没有什么不同(显然,从我无知的角度来看).使行为与众不同的区别是什么?
我试图连接到 mongodb 容器,但它不起作用,无法识别主机。
这是我的 docker-compose.yml 文件和服务:
version: '3'
services:
mongodb:
build:
context: .
dockerfile: docker/mongodb/Dockerfile
restart: always
environment:
DATABASE: database
USERNAME: user
PASSWORD: pass
ports:
- '5100:27017'
volumes:
- ./data/db:/data/db
Run Code Online (Sandbox Code Playgroud)
这是我的 mongodb dockerfile:
FROM mvertes/alpine-mongo:4.0.5-0
ENV MONGO_INITDB_DATABASE: ${DATABASE}
ENV MONGO_INITDB_ROOT_USERNAME: ${USERNAME}
ENV MONGO_INITDB_ROOT_PASSWORD: ${PASSWORD}
COPY ./docker/mongodb/init.js /docker-entrypoint-initdb.d
CMD ["mongod"]
EXPOSE 27017
Run Code Online (Sandbox Code Playgroud)
我正在尝试从 spring 建立连接,但找不到该服务,我的属性中有:
spring.data.mongodb.host=mongodb
spring.data.mongodb.port=5100
spring.data.mongodb.username=user
spring.data.mongodb.password=pass
spring.data.mongodb.database=database
Run Code Online (Sandbox Code Playgroud)
我也在尝试与 robo3T 建立连接,问题是一样的:
Address: mongodb://mongodb
port:5100
Run Code Online (Sandbox Code Playgroud)
春天的错误说:
com.mongodb.MongoSocketException: mongodb: unknown name or service
Run Code Online (Sandbox Code Playgroud)
在 robo3T 中说:
Cannot connect to the MongoDB …Run Code Online (Sandbox Code Playgroud) docker ×5
dockerfile ×2
java ×2
javascript ×2
ecmascript-6 ×1
json ×1
junit5 ×1
maven ×1
mongodb ×1
mysql ×1
node.js ×1
postgresql ×1
react-native ×1
spring ×1
spring-boot ×1
symfony ×1
unit-testing ×1
xlsx ×1