我可以这样执行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 命令替换,但它不能。
有没有办法做到这一点?
好的,我在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 …
玩具代码如下所示
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) 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 的标签总是被注释的。不支持轻量级标签。请参阅下面的答案和我的评论以证实这一点。
如果异常不是某种类型,如何使用 Python 的坚韧重试函数?
retry_if_exception_type如果出现某种类型的异常,将重试。not放置在方法之前或其参数之前似乎不起作用。
retry_unless_exception_type,另一方面,即使没有上升错误,也会永远循环,直到出现某种类型的上升错误。