小编m1w*_*ell的帖子

mysql docker 容器-授予用户权限-警告

我已经启动了标准 mysql docker 容器,现在想要创建一个用户并授予他权限。但是什么也没发生,我收到这个警告:
MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work

我对 mysql 不太熟悉 - 那么我应该在这里做什么?

更好的解决方案是使用额外的 sql 脚本启动此容器。
我应该怎么做才能使用这样的脚本启动容器:

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'myuser';
GRANT ALL PRIVILEGES ON * . * TO 'myuser'@'localhost';
Run Code Online (Sandbox Code Playgroud)

这是我实际的 docker 命令:
docker run -p 3306:3306 --name mysql-server -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

有人可以帮助我吗?

mysql sql docker

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

如何动态(通过环境变量)激活/停用 logback 或 logback 附加程序?

有没有办法通过环境变量选择是否有 logback 附加程序?

我有一个 dockerized spring boot 微服务,现在添加了 ELK 堆栈。
到目前为止效果很好。
但现在如果我想在没有 ELK 堆栈的情况下启动服务,应用程序会抛出一个错误,它不知道 Logstash 的主机:

app | 10:09:23,537 |-ERROR in ch.qos.logback.classic.net.SyslogAppender[SYSLOG] - Could not create SyslogWriter java.net.UnknownHostException: logstash: Name or service not known
app |   at java.net.UnknownHostException: logstash: Name or service not known
Run Code Online (Sandbox Code Playgroud)

这是我的 logback.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost>logstash</syslogHost>
        <port>5000</port>
        <facility>LOCAL1</facility>
        <suffixPattern>[%thread] %logger %msg</suffixPattern>
    </appender>

    <root level="INFO">
        <appender-ref ref="SYSLOG"/>
    </root>

</configuration>
Run Code Online (Sandbox Code Playgroud)

我知道这是一个非常简单的版本,但我是使用 logback/ELK 堆栈进行日志记录的新手。

那么有没有一种方法可以像 yaml 文件一样使用环境变量注入一些东西,例如active=${LOGBACK_ACTIVE:false}我可以使用我的 prometheus 指标来做到这一点?

logging logback spring-boot docker-compose elastic-stack

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

为什么@ApiModelProperty“名称”属性没有效果?

在我的 Spring Boot 应用程序中,我有一个 DTO 对象,其中包含 DTO 对象的嵌套列表。班级:

@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "contact")
public class ContactDTO {
  @ApiModelProperty(value = "id", example = "1", hidden = true)
  private Long id;

  @ApiModelProperty(value = "first name", example = "John")
  private String firstName;

  @ApiModelProperty(value = "last name", example = "Doe")
  private String lastName;

  @Builder.Default
  @ApiModelProperty(value = "list of phone numbers", name = "phonenumbers")
  List<PhoneNumberDTO> phoneNumberDTOList = new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)

post 请求的 swagger 示例值:

{
  "firstName": "John",
  "lastName": "Doe",
  "phoneNumberDTOList": [
    { …
Run Code Online (Sandbox Code Playgroud)

java swagger swagger-ui spring-boot springfox

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

为什么我的千分尺在应用程序启动后只执行一次?

我想实现一个千分尺,来监控数据库中的记录量。所以我创建了一个方面,spring-boot-starter-aop在调用我的服务方法后执行该方面。

方面:

@Slf4j
@Aspect
@Configuration
public class ContactAmountAspect {

  @Autowired
  ContactRepository contactRepository;

  @Autowired
  MeterRegistry registry;

  @AfterReturning(value = "execution(* mypackage.ContactService.*(..))")
  public void monitorContactAmount() {
    Gauge
        .builder("contacts.amount", contactRepository.findAll(), List::size)
        .register(registry);
    log.info("Amount of contacts in database: {}", contactRepository.findAll().size());
  }
}
Run Code Online (Sandbox Code Playgroud)

/prometheus端点上,我只能看到应用程序启动后第一次呼叫的联系人数量。如果我现在调用我的 POST 休息端点并将联系人添加到我的数据库中,则只有我log.info打印出新的联系人数量,但我的仪表什么也不做。
命令:

1. App Startup (let's say with 1 contact in DB)
2. Call Rest Endpoint "getAllContacts"
3. My AOP method starts
4. The gauge monitors contact amount of 1
5. the logger logs contact …
Run Code Online (Sandbox Code Playgroud)

database aop monitoring spring-boot micrometer

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

你如何退出docker-compose up @ macOS?

在docker-compose之后,在Windows上我退出"CTRL + C"并且容器仍在运行.当我在我的Mac上执行此操作时,docker会杀死我的容器:(

我现在尝试使用shell脚本,执行docker-compose到"echo",但在某个容器上,脚本挂断.

你怎么做那有什么最佳实践吗?(适用于windows)非常

感谢.

macos shell docker docker-compose

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

是否可以通过证书仅保护一个 Spring Boot Rest 端点?

有关架构的一些信息: - 我们在 Cloud Foundry 中运行(使用 https 路由) - 我们有一个网关(Spring Cloud Netflix zuul) - 我们的应用程序由令牌进行内部保护

如果您需要其他信息,请询问。

现在我们想api/v1/authorizations通过证书保护网关 ( ) 的一条路由。这样只有拥有此证书的客户端才能调用此端点。

那可能吗?

spring certificate spring-security cloud-foundry spring-boot

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

如何将启动脚本添加到mysql docker容器?

我用mysql启动了一个docker容器.
实际上我想创建一个新用户和一个新表 - 我必须在MySQL Workbench中完成.

这是我的docker run命令:
docker run -p 3306:3306 --name mysql-server -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

我的问题是:
我如何添加一个sql启动脚本(仅用于容器的第一次启动),它创建了我的用户和我的表?
我必须做哪些步骤?

有人可以帮我吗?
非常感谢!

mysql sql docker

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

如何重定向/捕获"git"命令并在真正的git命令之前做一些事情?

实际上我正在写我的zshrc链接的这个函数:

function mgit {
  string='github'
  remote=$(git remote -v)
  if [[ ${remote} == *${string}* ]]; then
    git config --global user.name "name1"
    git config --global user.email "email1@test.com"
  else
    git config --global user.name "name2"
    git config --global user.email "email2@test.de"
  fi
  git "$@"
}
Run Code Online (Sandbox Code Playgroud)

如果我现在执行这工作得很好mgit --version,而不是git --version.

但有没有办法捕获真正的git命令并执行此功能?
因为现在我不能用我的别名,例如ga用于git add ....
而是它可能然后用像搬运工或别的东西所有的命令?

git bash shell zsh

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