我有个问题。我对 docker 很陌生,所以我想要做的是创建一个 docker-compose 文件,该文件在 compose 命令上也将创建数据库。问题是它没有像我问的那样创建数据库。所以我的 docker-compose 看起来像:
version: '3'
services:
db:
image: postgres:latest
restart: always
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: 'postgres'
volumes:
- database_data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
volumes:
database_data:
driver: local
Run Code Online (Sandbox Code Playgroud)
当我在日志中启动 docker-compose up 时,我可以看到
db_1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1 |
db_1 | 2020-01-13 11:14:36.259 UTC [1] LOG: starting PostgreSQL 12.1 (Debian 12.1-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
db_1 | 2020-01-13 11:14:36.259 UTC [1] LOG: listening on …Run Code Online (Sandbox Code Playgroud) 我需要创建一个基于 Ubuntu 的自定义映像,其中包含我需要使用 apt 安装的软件。例如:
sudo apt-get install pcscd
sudo apt-get install pcsc-tools # same as pcsc-lite
# For OMNIKEY for driver Then unpack the file and run the installer:
cd /home/cccam/ifdokccid_lnx_x64-3.7.0/
chmod 755 install
sudo ./install
Run Code Online (Sandbox Code Playgroud)
我还希望该软件能够在 OpenJDK 1.8 64 位下运行,我也将安装它。重点是我需要运行这样的命令。我怎样才能用 JIB 做到这一点?有没有办法让 JIB 使用 Docker 文件?有没有办法将这样的命令脚本传递到 JIB 中?
我从 Spring Boot 文档中看到server.servlet.session.persistentoption 的默认值是,false但在我的应用程序中这true很奇怪,因为我没有显式修改它。我猜 Spring Security、Spring Session 或 Spring Redis 集成会将其转换为true. 也许这里有人知道这种行为的根源?
PS我使用Spring Boot 2.1.5。
我的 pom XML。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>ru.geekmarket</groupId>
<artifactId>geek-market-ui</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>geek-market-ui</name>
<description>Geek market e-commerce study project</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> …Run Code Online (Sandbox Code Playgroud) 我有一个包含两个容器的容器。一个容器是一个 Web 应用程序,另一个容器存储该 Web 应用程序的一些静态数据。
这里的数据是一组文件,它们以名称存储在该容器的文件夹中,/data这只是容器存储这些数据并将其公开给 Web 应用程序的功能。
我正在寻找与此 Pod 中的 Web 应用程序容器共享此文件夹的内容的方法。
如果我使用 YAML 规范,两个容器中的文件夹下面都是空的。有没有办法在不清理容器文件夹的情况下共享数据?
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
version: 1.2.3
spec:
volumes:
- name: my-app-data-volume
containers:
- name: my-app-server
image: my-app-server-container-name
volumeMounts:
- name: my-app-data-volume
mountPath: /data
ports:
- containerPort: 8080
- name: my-app-data
image: my-app-data-container-name
volumeMounts:
- name: my-app-data-volume
mountPath: /data
Run Code Online (Sandbox Code Playgroud)