在Docker容器中运行一个Objective-C应用程序,可以通过以下步骤进行:
- 编写Objective-C应用程序:
objc
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// Prints "Hello, World!"
NSLog(@"Hello, World!");
}
return 0;
}
保存为main.m。
- 构建Dockerfile:
Dockerfile
FROM apple/swift:5.2 AS build
WORKDIR /app
COPY main.m .
RUN swift build -c release
FROM ubuntu:18.04
WORKDIR /app
COPY --from=build /app/.build/release/main .
ENTRYPOINT ["./main"]
此Dockerfile采用多阶段构建。第一阶段基于Apple Swift镜像编译Objective-C应用程序,第二阶段基于Ubuntu镜像仅复制构建好的二进制文件,并指定为入口点。
- 构建镜像:
docker build -t objc-app .
- 运行容器:
docker run objc-app
输出:
Hello, World!
- 在Docker Compose中定义应用:
yaml
version: '3'
services:
objc-app:
build: .
image: objc-app
docker-compose run objc-app
可以一键运行应用。