使用 podman 在 macOS sequoia 15 上创建 dockerfile 镜像

问题描述 投票:0回答:1

我最近从 Windows 切换到新的 (M3 arm64) mac,我正在尝试运行我的旧配置。在 Windows PC 上,我在 ubuntu 上安装了 docker,并通过 intellijIdea 插件登录到守护进程。

在 Mac 上,我下载了 podman 并创建了从 podman 到 docker 的符号链接,这样我就可以从 bash 访问 docker 命令,而无需 sudo。

我在为 docker 运行 intellijIdea 配置时遇到问题。它说它已连接到守护进程并正确执行 dockerfile 中的每一步,但是在运行结束时我收到此错误 无法部署 ' Dockerfile:

--> 7ad3f942c461

STEP 11/11: EXPOSE 9080 9443

COMMIT project

--> 1d8b908ffb85

Successfully tagged localhost/project:latest

1d8b908ffb850921f8f1a122906f950194134d40fb1a22bca2723ccdfa3e6da3

Failed to deploy '<unknown> Dockerfile:/Users/peter/Documents/Github/Project/Dockerfile': Can't retrieve image ID from build stream

我相信错误之前的ID是它无法检索的ID...... 在早些时候的 dockerfile 中,我不得不从 java--version 进行更改,因为没有arm64芯片的选项

之前

FROM eclipse-temurin:17-jdk-alpine

现在

FROM eclipse-temurin:17-jdk

我不确定这是否正确,但它让我进一步陷入另一个错误,所以我将其保留在那里。

我可以使用它从 BASH 创建图像

podman build -f Dockerfile -t project:latest

然后,从 podman 桌面,我可以从在 BASH 中创建的映像创建容器,但我每次都需要指定环境变量,这非常烦人。特别是当我需要更频繁地重新启动它时(您需要修剪每个容器,然后修剪图像,然后从 bash 运行命令,然后设置 envVars,然后创建容器)

我习惯运行这种方法specify port binding and envfile easily

在 Windows 上,我能够重新创建图像打开容器并一键启动服务。

是否还有其他一些我忘记的 Windows 到 Mac 选项,或者有人有从基于 Intel 的芯片迁移到 Arm64 的经验吗? IDK 之类的东西,比如类路径或任何我作为 Windows 用户不知道的东西。

谢谢大家的回答

docker macos intellij-idea podman
1个回答
0
投票

这可能完全无关,但 OSX 15 Sequoia 存在与防火墙规则相关的“许多问题”。尝试运行这个:

/usr/libexec/ApplicationFirewall/socketfilterfw --listapps

我注意到升级到 OSX 15 后,该命令生成了 15 个条目(而不是零),其中之一是:

/Applications/IntelliJ%20IDEA.app: (Block incoming connections)

您可以使用相同的命令来修改防火墙规则。

© www.soinside.com 2019 - 2024. All rights reserved.