小编Maj*_*box的帖子

如何在 Docker 容器中以非 root 用户身份启动 crond?

我正在使用以下Dockerfileentrypoint.sh. 我需要以crond非 root 用户身份在容器中启动服务,但我得到Permission denied. 如何crond以非 root 用户身份启动服务?

我需要输入USERDockerfile因为它是我的 Openshift 3 平台中的强制性管理设置。

文件

FROM centos:centos7.4.1708
RUN yum update -y && yum install -y cronie && rm -rf /var/lib/apt/lists/*
RUN cd / && mkdir /code
ADD entrypoint.sh /code/
RUN chmod -R 755 /code/entrypoint.sh
ENTRYPOINT ["/code/entrypoint.sh"]
RUN useradd -l -u 1001510000 -c "1001510000" 1001510000
USER 1001510000
CMD ["top"]
Run Code Online (Sandbox Code Playgroud)

入口点.sh

#!/bin/bash
echo "in the entrypoint!"
echo "executing id"
id …
Run Code Online (Sandbox Code Playgroud)

cron centos docker

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

@RefreshScope与@ConditionalOnProperty不起作用

问题

探索一种@RequestMapping无需重新启动JVM即可按需启用/禁用端点的选项。在运行时在端点上实现kill开关。

尝试

我尝试了以下方法,但@RefreshScope似乎无法使用@ConditionOnProperty

@RestController
@RefreshScope
@ConditionalOnProperty(name = "stackoverflow.endpoints", havingValue = "enabled")
public class MyController {

    @Value("${stackoverflow.endpoints}")
    String value;

    @RequestMapping(path = "/sample", method = RequestMethod.GET)
    public ResponseEntity<String> process() {
        return ResponseEntity.ok(value);
    }

}
Run Code Online (Sandbox Code Playgroud)

使用更新属性

POST /env?stackoverflow.endpoints=anyvalue
Run Code Online (Sandbox Code Playgroud)

并使用重新加载上下文

POST /refresh
Run Code Online (Sandbox Code Playgroud)

此时,控制器返回更新后的值。

还有其他方法可以实现所需的功能吗?

runtime environment-variables spring-boot spring-cloud spring-boot-actuator

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

mat-tab-group 选项卡在切换父选项卡后不呈现

我有一个需要使用嵌套选项卡和表格的示例。

https://stackblitz.com/edit/angular-bgl1f2

当我切换父选项卡(查看 M2)然后尝试切换子选项卡(M3)时,选项卡不会呈现。仅在多次切换子选项卡 (M3) 后才会进行渲染。

在上面的 Stackblitz 中重现的步骤:

  1. 打开任何 M1 扩展面板。这将显示父选项卡(查看 M2)和子选项卡(M3)
  2. 切换到子选项卡 ( M3 32 B )
  3. 切换到父选项卡(查看 M2-2
  4. 切换回上一个父选项卡(查看 M2-1
  5. 切换到子选项卡 ( M3 33 C )

预期结果
表格应显示在子选项卡中 ( M3 33 C )

实际结果
在子选项卡中没有呈现任何内容(M3 33 C

当您切换到不同的子选项卡,然后返回到子选项卡 ( M3 33 C ) 时,会显示表格。

谁能指出什么是错的?

typescript angular-material angular mat-tab

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

uWSGI - chdir():没有这样的文件或目录[core/uwsgi.c第2629行]

我无法使用 uWSGI 启动 dockerized Django 应用程序。以下是正在使用的配置。

Dockerfile

FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN apt-get update
RUN apt-get install -y swig libssl-dev dpkg-dev netcat unixodbc-dev python-dev libldap2-dev libsasl2-dev
RUN mkdir /code
WORKDIR /code
COPY app/ /code/
RUN pip install -U pip
ENV PIP_TRUSTED_HOST="pypi.python.org pypi.org files.pythonhosted.org"
RUN apt-get install ca-certificates
RUN pip install -Ur requirements.txt
RUN chmod -R 777 /code
CMD ["/code/run.sh"]
Run Code Online (Sandbox Code Playgroud)

运行sh

#!/bin/bash

./manage.py migrate
uwsgi --ini uwsgi.ini
Run Code Online (Sandbox Code Playgroud)

应用程序/uwsgi.ini

[uwsgi]
http-socket = :8000
chdir = /opt/code/
module = app.wsgi:application
master = …
Run Code Online (Sandbox Code Playgroud)

django uwsgi docker

5
推荐指数
0
解决办法
9090
查看次数

dyld:库未加载:@rpath/libpcre.1.dylib

我已将 wsgi 插入到我的 Django 应用程序中。
我使用的是 macOS High Sierra - 10.13.3。
应用程序使用以下命令运行良好。

python manage.py runserver 
Run Code Online (Sandbox Code Playgroud)

但是当我使用 wsgi 启动服务器时。它失败。

$> uwsgi --ini uwsgi.ini
dyld: Library not loaded: @rpath/libpcre.1.dylib
  Referenced from: /Users/mymac/anaconda3/bin/uwsgi
  Reason: image not found
[1]    27677 abort      uwsgi --ini uwsgi.ini
Run Code Online (Sandbox Code Playgroud)

uwsgi.ini

[uwsgi]
http-socket = :8000
chdir = /app
module = app.wsgi:application
master = 1
processes = 2
threads = 2
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄清楚 uwsgi 配置有什么问题吗?

django uwsgi

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