小编kmi*_*3sd的帖子

用户“postgres”的密码不匹配

我正在尝试在我的 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)

postgresql docker dockerfile docker-compose

7
推荐指数
2
解决办法
4309
查看次数

带有空单元格的 xlsx 到 json

我正在将文件从 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)

javascript json xlsx node.js

6
推荐指数
1
解决办法
8240
查看次数

Maven 在 Spring 项目构建中尝试与数据库建立连接失败

我为我的 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 …

java maven docker spring-boot

3
推荐指数
1
解决办法
2783
查看次数

mysql容器连接被拒绝

我有一个带有 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)

mysql symfony docker

1
推荐指数
1
解决办法
5419
查看次数

如何测试方法抛出异常junit5

我有一个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)

我该如何测试?

java unit-testing junit5

0
推荐指数
1
解决办法
1672
查看次数

COPY dockerfile 中没有这样的文件或目录

我制作了以下 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)

docker dockerfile

0
推荐指数
1
解决办法
4415
查看次数

onPress方法中箭头函数与正常函数的行为

我正在学习原生的反应并更多地了解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)

这只有当我按下按钮组件时才执行控制台日志.

有人可以向我解释为什么行为不同?函数式编程的世界对我来说是全新的,这些事情对我来说似乎很奇怪.根据我的理解,两者都是功能,所以对我来说它们并没有什么不同(显然,从我无知的角度来看).使行为与众不同的区别是什么?

javascript ecmascript-6 react-native

0
推荐指数
1
解决办法
83
查看次数

无法连接到 mongodb 容器主机

我试图连接到 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)

spring mongodb docker docker-compose

0
推荐指数
1
解决办法
1482
查看次数