目录
- Dockerfile
- 构建
- 代码
- 测试
Dockerfile
FROM quay.io/quarkus/ubi-quarkus-native-image:22.3-java11 AS buildWORKDIR /workspace
COPY . .RUN ./mvnw -DskipTests=true clean package -Dnative -U# Stage 2: Create the minimal runtime image
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6WORKDIR /work/
RUN chown 1001 /work \&& chmod "g+rwX" /work \&& chown 1001:root /workCOPY --from=build /workspace/target/*-runner /work/applicationEXPOSE 8080
USER 1001CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
构建
-
构建命令
docker build -t your_image_name -f Dockerfile .
构建镜像的时间比较长,需要等待一下,耐心呦~
特殊说明: -
-t your_image_name用于指定构建的镜像名称。
-
-f Dockerfile用于指定要使用的Dockerfile。如果Dockerfile不在当前目录,需要提供完整路径。
-
.表示Dockerfile所在的当前目录。
特别用法:docker build -t your_image_name .
-
Dockerfile的文件名为Dockerfile
-
Dockerfile位于构建上下文的根目录中。
-
运行命令
docker run -i --rm -p 9096:8080 -p 9098:9096 test
代码
引入lombok的依赖
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><scope>compile</scope></dependency>
实体类以及Controller层
@Path("/users")
public class UserAdapter {@GET@Path("/get-username/reflect")public String getUser() throws Exception {User users = new User();Class<? extends User> aClass = users.getClass();Field username = aClass.getDeclaredField("username");username.setAccessible(true);username.set(users,"反射用户名");return users.getUsername();}
}@AllArgsConstructor
@NoArgsConstructor
@Data
public class User {private String username;
}
测试
请求访问成功