小编ing*_*ere的帖子

如何在 Docker Compose 中设置 uid 和 gid?

我可以这样执行docker run命令......

docker run --rm  --user $(id -u):$(id -g) -e MYDATA=/some/path/to/data -e USER=$USER -p 8883-8887:8883-8887 ...
Run Code Online (Sandbox Code Playgroud)

但是,在 Docker Compose 中,当我写出以下内容时......

version: '3.7'
services:
  container_name: some-server
  image: some:img
  user: $(id -u):$(id -g) 
  ... 
Run Code Online (Sandbox Code Playgroud)

... 这是行不通的。

我知道我要求docker-compose up执行子 shell 命令替换,但它不能。

有没有办法做到这一点?

bash shell docker docker-compose

33
推荐指数
2
解决办法
3万
查看次数

Ant在哪里设置'java.home'(并且它是错的)并且它应该附加'/ jre'吗?

好的,我在CentOS 6.3上使用Ant版本1.7.1(默认安装):

[theuser@dev-ingyhere ~]$ ant -version
Apache Ant version 1.7.1 compiled on August 24 2010
[theuser@dev-ingyhere ~]$ cat /etc/*-release
CentOS release 6.3 (Final)
Run Code Online (Sandbox Code Playgroud)

我已经JAVA_HOME设置并运行ant:

[theuser@dev-ingyhere ~]$ export JAVA_HOME=/usr/java/jdk1.7.0_17 ; echo $JAVA_HOME ;
/usr/java/jdk1.7.0_17
[theuser@dev-ingyhere ~]$ ant -diagnostics | grep java\\.home
java.home : /usr/java/jdk1.7.0_17/jre
Run Code Online (Sandbox Code Playgroud)

这更有趣:

[theuser@dev-ingyhere ~]$ export JAVA_HOME=/a/fools/folly ; echo $JAVA_HOME ; ant -diagnostics | grep java\\.home
/a/fools/folly
java.home : /usr/java/jdk1.7.0_17/jre
[theuser@dev-ingyhere ~]$  env | grep JAVA
JAVA_HOME=/a/fools/folly 
Run Code Online (Sandbox Code Playgroud)

所以,我确实得到了一件事 - 显然Oracle的Java 7 Javadoc for Class …

java ant centos environment-variables

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

Python 重试包 - tenacity:如何记录异常的根本原因?

正如在这个问题中所讨论的,我正在利用坚韧来重试。

玩具代码如下所示

import logging
from tenacity import retry
import tenacity


@retry(wait=tenacity.wait_incrementing(start=10, increment=10, max=100), stop=tenacity.stop_after_attempt(3))
def print_msg():
    logging.info('Hello')
    logging.info("World")
    raise Exception('Test error')


if __name__ == '__main__':
    logging.basicConfig(
        format='%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s',
        datefmt='%d-%m-%Y:%H:%M:%S',
        level=logging.INFO)
    logging.info('Starting')
    print_msg()
Run Code Online (Sandbox Code Playgroud)

输出如下所示

21-11-2018:12:40:48,586 INFO     [retrier.py:18] Starting
21-11-2018:12:40:48,586 INFO     [retrier.py:8] Hello
21-11-2018:12:40:48,586 INFO     [retrier.py:9] World
21-11-2018:12:40:58,592 INFO     [retrier.py:8] Hello
21-11-2018:12:40:58,592 INFO     [retrier.py:9] World
21-11-2018:12:41:18,596 INFO     [retrier.py:8] Hello
21-11-2018:12:41:18,596 INFO     [retrier.py:9] World
21-11-2018:12:41:18,596 ERROR    [retrier.py:22] Received Exception
Traceback (most recent call last):
  File "/Users/dmanna/PycharmProjects/demo/retrier.py", line …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-tenacity

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

Maven 发布插件和 Git 标记样式

Maven Release Plugin 是否在 Git 中执行轻量级或带注释的标签?(另外,如果它默认为轻量级标签,它是否支持带注释的标签?)

例如,我可以使用以下任一方法手动标记项目:

git tag v1.0.0 # 轻的

或者,或者,

git tag -a v1.0.0 # 注释

这些是非常不同类型的标签。第一个是轻量级 Git 标签,第二个是带注释的 Git 标签。

注意:我知道release:prepare目标通过 POM 更改执行提交,这实际上模拟了带注释的标签,因为它将标签与新的特定提交联系起来,但我的问题是带注释的标签是否是结果,无论如何。)

背景: Mavenized Java 项目上的 Maven 3.3.9 和 Git 2.7.4。在 Google 或 SO 上找到这个答案并不容易。

更新: Maven Release Plugin 的标签总是被注释的。不支持轻量级标签。请参阅下面的答案和我的评论以证实这一点。

git tagging release-management maven maven-release-plugin

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

Python坚韧:如果异常不是某种类型,如何重试?

如果异常不是某种类型,如何使用 Python 的坚韧重试函数?

retry_if_exception_type如果出现某种类型的异常,将重试。not放置在方法之前或其参数之前似乎不起作用。

retry_unless_exception_type,另一方面,即使没有上升错误,也会永远循环,直到出现某种类型的上升错误。

python error-handling exception python-3.x python-tenacity

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