application.yml:
spring:
profiles:
active: server
datasource:
url: ${DATASOURCE_URL}
databaseName:
serverName:
username: ${DATASOURCE_USERNAME}
password: ${DATASOURCE_PASSWORD}
dataSourceClassName: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
registerMbeans: true
maxPoolSize: ${DATASOURCE_MAXPOOLSIZE}
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
data:
couchbase:
nodes:
- ${COUCHBASE_NODE_1}
- ${COUCHBASE_NODE_2}
bucket: ${COUCHBASE_BUCKET}
password: ${COUCHBASE_PASSWORD}
port: ${COUCHBASE_PORT}
其中,datasource_username
和datasource_password
...是容器本身的env var
我的问题是在哪里定义/声明这个变量,我尝试将它包含在.bachrc
中,在一个文件中,如下所示:
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
########## CONFIGS FILES ############
source $HOME/envfile.list
DATASOURCE_USERNAME="aaa"
DATASOURCE_PASSWORD="bbb"
...
我的pb是我的java进程看不到这些变量,注意:我想明确地设置这些变量,而不是docker run-e
建议?
您有没有想过使用docker-compose.yml
文件来创建一个容器堆栈?它也可以只包含一个容器,但您可以使用environment:
树在其中添加环境变量。
然后,您需要安装docker-compse
,而不是运行docker-compose
,然后才能启动堆栈(即docker-compose.yml
文件中的所有容器)。
然而,你的入口点如何工作仍然是至关重要的。如果它是一个二进制文件,它将在变量将出现的环境中运行。如果它是另一个shell脚本,那么输入脚本将需要导出该变量,以便使其可用于下一个子进程。
您还可以更改dockerfile的入口点,并在其前面添加var=key
变量定义。它们将可用于子流程:
ENTRYPOINT variable1=value1 variable2=value2 myprocess.sh
如果您不控制容器,您可以从原始映像构建自己的映像,只需更改入口点:
FROM other/image:latest
ENTRYPOINT variable1=value1 variable2=value2 myprocess.sh
显然,您想要从原始图像中查找的是其入口点的外观,以便您可以根据需要对其进行修改。
我编写docker文件是为了运行jar文件,而它并没有创建日志文件,请参阅下面的控制台是我的docker文件
我有 3 个码头工人撰写文件。一个启动Kafka,另外两个是消费者和生产者。在 kafka 中添加了其他 docker 撰写文件中的external_links,但仍然无法从容器内部访问 kafka。从容器外部,我可以通过 localhost:9092 访问,但是在 docker 容器内部呢?
我开始玩< code>std::ranges并想了解视图实际上是如何工作的。所以我尝试编写自己的容器和迭代器类型,并希望在视图中使用它。 但是似乎缺少了一些东西,但编译器只告诉我视图中没有方法,但没有说明原因。 例子: 使用编译 主要的cpp:90:16:error:“struct std::ranges::views::__adaptor::_RangeAdaptorClosurestd::ra
是稳定的东西,应该存在于容器中,而不是我的主机目录中,但即使在装入后也需要保留。 既存在于容器中(因为需要它),也存在于主机目录中(因为我要编辑它)。我希望我的主机目录版本覆盖容器版本。 可能不存在于任何一个起始位置,而是在运行过程中生成的。我希望它一存在就保留在我的主机目录中。 (我猜是第4类,比如,我不在乎它是否存在) 在我的例子中,TF希望配置插件的和(我想用绑定挂载捕获的输出之一)都在同一
我正在docker容器中设置一个应用程序。我希望这个应用程序能够与localstack堆栈容器localstack文档连接。当我运行时,容器会成功启动。我可以运行docker-compose文件中未包含的独立java应用程序,它将成功连接到localstack容器。但与localstack一起启动的应用程序无法连接。我看过docker文档和localstack文档,我想不出如何让这些东西彼此通信。
问题内容: 我想这样做,以便我启动的Docker容器使用与我运行的主机相同的设置。有没有办法做到这一点? 我知道docker run 有一个选项,但这并不是我想要的,因为主机的文件在不同的机器上可能不同,所以用硬编码确切的IP /主机对我来说不是很好。 问题答案: 使用在泊坞窗运行命令。这告诉Docker使容器使用主机的网络堆栈。您可以在此处了解更多信息。