From b8521828e38b5569778ed1ec1dd4e370d3bd5113 Mon Sep 17 00:00:00 2001 From: Roman Gershman Date: Fri, 25 Feb 2022 10:03:42 +0200 Subject: [PATCH] Add Dockerfile for prod container. Reorganize source tree to be docker-build friendly. --- .dockerignore | 2 ++ .github/workflows/ci.yml | 2 +- CMakeLists.txt | 6 ++-- src/CMakeLists.txt | 3 ++ {core => src/core}/CMakeLists.txt | 0 {core => src/core}/compact_object.cc | 0 {core => src/core}/compact_object.h | 0 {core => src/core}/compact_object_test.cc | 0 {core => src/core}/core_types.h | 0 {core => src/core}/dash.h | 0 {core => src/core}/dash_internal.h | 0 {core => src/core}/dash_test.cc | 0 {core => src/core}/dfly_core_test.cc | 0 {core => src/core}/dragonfly_core.cc | 0 {core => src/core}/intent_lock.h | 0 {core => src/core}/interpreter.cc | 0 {core => src/core}/interpreter.h | 0 {core => src/core}/interpreter_test.cc | 0 {core => src/core}/mi_memory_resource.h | 0 {core => src/core}/op_status.h | 0 {core => src/core}/resp_expr.h | 0 {core => src/core}/segment_allocator.cc | 0 {core => src/core}/segment_allocator.h | 0 {core => src/core}/small_string.cc | 0 {core => src/core}/small_string.h | 0 {core => src/core}/tx_queue.cc | 0 {core => src/core}/tx_queue.h | 0 {redis => src/redis}/CMakeLists.txt | 0 {redis => src/redis}/LICENSE.redis | 0 {redis => src/redis}/atomicvar.h | 0 {redis => src/redis}/config.h | 0 {redis => src/redis}/crc64.c | 0 {redis => src/redis}/crc64.h | 0 {redis => src/redis}/crcspeed.c | 0 {redis => src/redis}/crcspeed.h | 0 {redis => src/redis}/debug.c | 0 {redis => src/redis}/dict.c | 0 {redis => src/redis}/dict.h | 0 {redis => src/redis}/endianconv.c | 0 {redis => src/redis}/endianconv.h | 0 {redis => src/redis}/intset.c | 0 {redis => src/redis}/intset.h | 0 {redis => src/redis}/listpack.c | 0 {redis => src/redis}/listpack.h | 0 {redis => src/redis}/lzf.h | 0 {redis => src/redis}/lzfP.h | 0 {redis => src/redis}/lzf_c.c | 0 {redis => src/redis}/lzf_d.c | 0 {redis => src/redis}/mt19937-64.c | 0 {redis => src/redis}/mt19937-64.h | 0 {redis => src/redis}/object.c | 0 {redis => src/redis}/object.h | 0 {redis => src/redis}/quicklist.c | 0 {redis => src/redis}/quicklist.h | 0 {redis => src/redis}/rdb.h | 0 {redis => src/redis}/redis_aux.c | 0 {redis => src/redis}/redis_aux.h | 0 {redis => src/redis}/sds.c | 0 {redis => src/redis}/sds.h | 0 {redis => src/redis}/sdsalloc.h | 0 {redis => src/redis}/sha256.c | 0 {redis => src/redis}/sha256.h | 0 {redis => src/redis}/siphash.c | 0 {redis => src/redis}/t_zset.c | 0 {redis => src/redis}/util.c | 0 {redis => src/redis}/util.h | 0 {redis => src/redis}/zmalloc.c | 0 {redis => src/redis}/zmalloc.h | 0 {redis => src/redis}/zmalloc_mi.c | 0 {redis => src/redis}/zset.h | 0 {server => src/server}/CMakeLists.txt | 0 {server => src/server}/command_registry.cc | 0 {server => src/server}/command_registry.h | 0 {server => src/server}/common.cc | 0 {server => src/server}/common_types.h | 0 {server => src/server}/config_flags.cc | 0 {server => src/server}/config_flags.h | 0 {server => src/server}/conn_context.cc | 0 {server => src/server}/conn_context.h | 0 {server => src/server}/db_slice.cc | 0 {server => src/server}/db_slice.h | 0 {server => src/server}/debugcmd.cc | 0 {server => src/server}/debugcmd.h | 0 {server => src/server}/detail/table.h | 0 {server => src/server}/dfly_main.cc | 0 .../server}/dragonfly_connection.cc | 0 {server => src/server}/dragonfly_connection.h | 0 {server => src/server}/dragonfly_listener.cc | 0 {server => src/server}/dragonfly_listener.h | 0 {server => src/server}/dragonfly_test.cc | 0 {server => src/server}/engine_shard_set.cc | 0 {server => src/server}/engine_shard_set.h | 0 {server => src/server}/error.h | 0 {server => src/server}/generic_family.cc | 0 {server => src/server}/generic_family.h | 0 {server => src/server}/generic_family_test.cc | 0 {server => src/server}/global_state.h | 0 {server => src/server}/list_family.cc | 0 {server => src/server}/list_family.h | 0 {server => src/server}/list_family_test.cc | 0 {server => src/server}/main_service.cc | 0 {server => src/server}/main_service.h | 0 {server => src/server}/memcache_parser.cc | 0 {server => src/server}/memcache_parser.h | 0 .../server}/memcache_parser_test.cc | 0 {server => src/server}/rdb_load.cc | 0 {server => src/server}/rdb_load.h | 0 {server => src/server}/rdb_save.cc | 0 {server => src/server}/rdb_save.h | 0 {server => src/server}/rdb_test.cc | 0 {server => src/server}/redis_parser.cc | 0 {server => src/server}/redis_parser.h | 0 {server => src/server}/redis_parser_test.cc | 0 {server => src/server}/replica.cc | 0 {server => src/server}/replica.h | 0 {server => src/server}/reply_builder.cc | 0 {server => src/server}/reply_builder.h | 0 {server => src/server}/script_mgr.cc | 0 {server => src/server}/script_mgr.h | 0 {server => src/server}/server_family.cc | 0 {server => src/server}/server_family.h | 0 {server => src/server}/server_state.h | 0 {server => src/server}/snapshot.cc | 0 {server => src/server}/snapshot.h | 0 {server => src/server}/string_family.cc | 0 {server => src/server}/string_family.h | 0 {server => src/server}/string_family_test.cc | 0 {server => src/server}/table.h | 0 {server => src/server}/test_utils.cc | 0 {server => src/server}/test_utils.h | 0 {server => src/server}/testdata/empty.rdb | Bin {server => src/server}/testdata/small.rdb | Bin {server => src/server}/transaction.cc | 0 {server => src/server}/transaction.h | 0 tools/docker/Dockerfile.alpine-prod | 28 ++++++++++++++++++ tools/docker/alpine-entry.sh | 15 ++++++++++ 136 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 .dockerignore create mode 100644 src/CMakeLists.txt rename {core => src/core}/CMakeLists.txt (100%) rename {core => src/core}/compact_object.cc (100%) rename {core => src/core}/compact_object.h (100%) rename {core => src/core}/compact_object_test.cc (100%) rename {core => src/core}/core_types.h (100%) rename {core => src/core}/dash.h (100%) rename {core => src/core}/dash_internal.h (100%) rename {core => src/core}/dash_test.cc (100%) rename {core => src/core}/dfly_core_test.cc (100%) rename {core => src/core}/dragonfly_core.cc (100%) rename {core => src/core}/intent_lock.h (100%) rename {core => src/core}/interpreter.cc (100%) rename {core => src/core}/interpreter.h (100%) rename {core => src/core}/interpreter_test.cc (100%) rename {core => src/core}/mi_memory_resource.h (100%) rename {core => src/core}/op_status.h (100%) rename {core => src/core}/resp_expr.h (100%) rename {core => src/core}/segment_allocator.cc (100%) rename {core => src/core}/segment_allocator.h (100%) rename {core => src/core}/small_string.cc (100%) rename {core => src/core}/small_string.h (100%) rename {core => src/core}/tx_queue.cc (100%) rename {core => src/core}/tx_queue.h (100%) rename {redis => src/redis}/CMakeLists.txt (100%) rename {redis => src/redis}/LICENSE.redis (100%) rename {redis => src/redis}/atomicvar.h (100%) rename {redis => src/redis}/config.h (100%) rename {redis => src/redis}/crc64.c (100%) rename {redis => src/redis}/crc64.h (100%) rename {redis => src/redis}/crcspeed.c (100%) rename {redis => src/redis}/crcspeed.h (100%) rename {redis => src/redis}/debug.c (100%) rename {redis => src/redis}/dict.c (100%) rename {redis => src/redis}/dict.h (100%) rename {redis => src/redis}/endianconv.c (100%) rename {redis => src/redis}/endianconv.h (100%) rename {redis => src/redis}/intset.c (100%) rename {redis => src/redis}/intset.h (100%) rename {redis => src/redis}/listpack.c (100%) rename {redis => src/redis}/listpack.h (100%) rename {redis => src/redis}/lzf.h (100%) rename {redis => src/redis}/lzfP.h (100%) rename {redis => src/redis}/lzf_c.c (100%) rename {redis => src/redis}/lzf_d.c (100%) rename {redis => src/redis}/mt19937-64.c (100%) rename {redis => src/redis}/mt19937-64.h (100%) rename {redis => src/redis}/object.c (100%) rename {redis => src/redis}/object.h (100%) rename {redis => src/redis}/quicklist.c (100%) rename {redis => src/redis}/quicklist.h (100%) rename {redis => src/redis}/rdb.h (100%) rename {redis => src/redis}/redis_aux.c (100%) rename {redis => src/redis}/redis_aux.h (100%) rename {redis => src/redis}/sds.c (100%) rename {redis => src/redis}/sds.h (100%) rename {redis => src/redis}/sdsalloc.h (100%) rename {redis => src/redis}/sha256.c (100%) rename {redis => src/redis}/sha256.h (100%) rename {redis => src/redis}/siphash.c (100%) rename {redis => src/redis}/t_zset.c (100%) rename {redis => src/redis}/util.c (100%) rename {redis => src/redis}/util.h (100%) rename {redis => src/redis}/zmalloc.c (100%) rename {redis => src/redis}/zmalloc.h (100%) rename {redis => src/redis}/zmalloc_mi.c (100%) rename {redis => src/redis}/zset.h (100%) rename {server => src/server}/CMakeLists.txt (100%) rename {server => src/server}/command_registry.cc (100%) rename {server => src/server}/command_registry.h (100%) rename {server => src/server}/common.cc (100%) rename {server => src/server}/common_types.h (100%) rename {server => src/server}/config_flags.cc (100%) rename {server => src/server}/config_flags.h (100%) rename {server => src/server}/conn_context.cc (100%) rename {server => src/server}/conn_context.h (100%) rename {server => src/server}/db_slice.cc (100%) rename {server => src/server}/db_slice.h (100%) rename {server => src/server}/debugcmd.cc (100%) rename {server => src/server}/debugcmd.h (100%) rename {server => src/server}/detail/table.h (100%) rename {server => src/server}/dfly_main.cc (100%) rename {server => src/server}/dragonfly_connection.cc (100%) rename {server => src/server}/dragonfly_connection.h (100%) rename {server => src/server}/dragonfly_listener.cc (100%) rename {server => src/server}/dragonfly_listener.h (100%) rename {server => src/server}/dragonfly_test.cc (100%) rename {server => src/server}/engine_shard_set.cc (100%) rename {server => src/server}/engine_shard_set.h (100%) rename {server => src/server}/error.h (100%) rename {server => src/server}/generic_family.cc (100%) rename {server => src/server}/generic_family.h (100%) rename {server => src/server}/generic_family_test.cc (100%) rename {server => src/server}/global_state.h (100%) rename {server => src/server}/list_family.cc (100%) rename {server => src/server}/list_family.h (100%) rename {server => src/server}/list_family_test.cc (100%) rename {server => src/server}/main_service.cc (100%) rename {server => src/server}/main_service.h (100%) rename {server => src/server}/memcache_parser.cc (100%) rename {server => src/server}/memcache_parser.h (100%) rename {server => src/server}/memcache_parser_test.cc (100%) rename {server => src/server}/rdb_load.cc (100%) rename {server => src/server}/rdb_load.h (100%) rename {server => src/server}/rdb_save.cc (100%) rename {server => src/server}/rdb_save.h (100%) rename {server => src/server}/rdb_test.cc (100%) rename {server => src/server}/redis_parser.cc (100%) rename {server => src/server}/redis_parser.h (100%) rename {server => src/server}/redis_parser_test.cc (100%) rename {server => src/server}/replica.cc (100%) rename {server => src/server}/replica.h (100%) rename {server => src/server}/reply_builder.cc (100%) rename {server => src/server}/reply_builder.h (100%) rename {server => src/server}/script_mgr.cc (100%) rename {server => src/server}/script_mgr.h (100%) rename {server => src/server}/server_family.cc (100%) rename {server => src/server}/server_family.h (100%) rename {server => src/server}/server_state.h (100%) rename {server => src/server}/snapshot.cc (100%) rename {server => src/server}/snapshot.h (100%) rename {server => src/server}/string_family.cc (100%) rename {server => src/server}/string_family.h (100%) rename {server => src/server}/string_family_test.cc (100%) rename {server => src/server}/table.h (100%) rename {server => src/server}/test_utils.cc (100%) rename {server => src/server}/test_utils.h (100%) rename {server => src/server}/testdata/empty.rdb (100%) rename {server => src/server}/testdata/small.rdb (100%) rename {server => src/server}/transaction.cc (100%) rename {server => src/server}/transaction.h (100%) create mode 100644 tools/docker/Dockerfile.alpine-prod create mode 100755 tools/docker/alpine-entry.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..0de56774c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +_deps/* +build-* \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f21a043a6..7660bdd63 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: - name: Build & Test run: | cd ${{github.workspace}}/build - ninja core/all server/all + ninja src/all ccache --show-stats # GLOG_logtostderr=1 ctest -V -R list_family_test echo Run ctest -V -L DFLY diff --git a/CMakeLists.txt b/CMakeLists.txt index 33b0ca608..88835d050 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,10 +31,8 @@ add_third_party( Message(STATUS "THIRD_PARTY_LIB_DIR ${THIRD_PARTY_LIB_DIR}") -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(src) include_directories(helio) add_subdirectory(helio) -add_subdirectory(core) -add_subdirectory(redis) -add_subdirectory(server) +add_subdirectory(src) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 000000000..6b81a9f9f --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,3 @@ +add_subdirectory(redis) +add_subdirectory(core) +add_subdirectory(server) diff --git a/core/CMakeLists.txt b/src/core/CMakeLists.txt similarity index 100% rename from core/CMakeLists.txt rename to src/core/CMakeLists.txt diff --git a/core/compact_object.cc b/src/core/compact_object.cc similarity index 100% rename from core/compact_object.cc rename to src/core/compact_object.cc diff --git a/core/compact_object.h b/src/core/compact_object.h similarity index 100% rename from core/compact_object.h rename to src/core/compact_object.h diff --git a/core/compact_object_test.cc b/src/core/compact_object_test.cc similarity index 100% rename from core/compact_object_test.cc rename to src/core/compact_object_test.cc diff --git a/core/core_types.h b/src/core/core_types.h similarity index 100% rename from core/core_types.h rename to src/core/core_types.h diff --git a/core/dash.h b/src/core/dash.h similarity index 100% rename from core/dash.h rename to src/core/dash.h diff --git a/core/dash_internal.h b/src/core/dash_internal.h similarity index 100% rename from core/dash_internal.h rename to src/core/dash_internal.h diff --git a/core/dash_test.cc b/src/core/dash_test.cc similarity index 100% rename from core/dash_test.cc rename to src/core/dash_test.cc diff --git a/core/dfly_core_test.cc b/src/core/dfly_core_test.cc similarity index 100% rename from core/dfly_core_test.cc rename to src/core/dfly_core_test.cc diff --git a/core/dragonfly_core.cc b/src/core/dragonfly_core.cc similarity index 100% rename from core/dragonfly_core.cc rename to src/core/dragonfly_core.cc diff --git a/core/intent_lock.h b/src/core/intent_lock.h similarity index 100% rename from core/intent_lock.h rename to src/core/intent_lock.h diff --git a/core/interpreter.cc b/src/core/interpreter.cc similarity index 100% rename from core/interpreter.cc rename to src/core/interpreter.cc diff --git a/core/interpreter.h b/src/core/interpreter.h similarity index 100% rename from core/interpreter.h rename to src/core/interpreter.h diff --git a/core/interpreter_test.cc b/src/core/interpreter_test.cc similarity index 100% rename from core/interpreter_test.cc rename to src/core/interpreter_test.cc diff --git a/core/mi_memory_resource.h b/src/core/mi_memory_resource.h similarity index 100% rename from core/mi_memory_resource.h rename to src/core/mi_memory_resource.h diff --git a/core/op_status.h b/src/core/op_status.h similarity index 100% rename from core/op_status.h rename to src/core/op_status.h diff --git a/core/resp_expr.h b/src/core/resp_expr.h similarity index 100% rename from core/resp_expr.h rename to src/core/resp_expr.h diff --git a/core/segment_allocator.cc b/src/core/segment_allocator.cc similarity index 100% rename from core/segment_allocator.cc rename to src/core/segment_allocator.cc diff --git a/core/segment_allocator.h b/src/core/segment_allocator.h similarity index 100% rename from core/segment_allocator.h rename to src/core/segment_allocator.h diff --git a/core/small_string.cc b/src/core/small_string.cc similarity index 100% rename from core/small_string.cc rename to src/core/small_string.cc diff --git a/core/small_string.h b/src/core/small_string.h similarity index 100% rename from core/small_string.h rename to src/core/small_string.h diff --git a/core/tx_queue.cc b/src/core/tx_queue.cc similarity index 100% rename from core/tx_queue.cc rename to src/core/tx_queue.cc diff --git a/core/tx_queue.h b/src/core/tx_queue.h similarity index 100% rename from core/tx_queue.h rename to src/core/tx_queue.h diff --git a/redis/CMakeLists.txt b/src/redis/CMakeLists.txt similarity index 100% rename from redis/CMakeLists.txt rename to src/redis/CMakeLists.txt diff --git a/redis/LICENSE.redis b/src/redis/LICENSE.redis similarity index 100% rename from redis/LICENSE.redis rename to src/redis/LICENSE.redis diff --git a/redis/atomicvar.h b/src/redis/atomicvar.h similarity index 100% rename from redis/atomicvar.h rename to src/redis/atomicvar.h diff --git a/redis/config.h b/src/redis/config.h similarity index 100% rename from redis/config.h rename to src/redis/config.h diff --git a/redis/crc64.c b/src/redis/crc64.c similarity index 100% rename from redis/crc64.c rename to src/redis/crc64.c diff --git a/redis/crc64.h b/src/redis/crc64.h similarity index 100% rename from redis/crc64.h rename to src/redis/crc64.h diff --git a/redis/crcspeed.c b/src/redis/crcspeed.c similarity index 100% rename from redis/crcspeed.c rename to src/redis/crcspeed.c diff --git a/redis/crcspeed.h b/src/redis/crcspeed.h similarity index 100% rename from redis/crcspeed.h rename to src/redis/crcspeed.h diff --git a/redis/debug.c b/src/redis/debug.c similarity index 100% rename from redis/debug.c rename to src/redis/debug.c diff --git a/redis/dict.c b/src/redis/dict.c similarity index 100% rename from redis/dict.c rename to src/redis/dict.c diff --git a/redis/dict.h b/src/redis/dict.h similarity index 100% rename from redis/dict.h rename to src/redis/dict.h diff --git a/redis/endianconv.c b/src/redis/endianconv.c similarity index 100% rename from redis/endianconv.c rename to src/redis/endianconv.c diff --git a/redis/endianconv.h b/src/redis/endianconv.h similarity index 100% rename from redis/endianconv.h rename to src/redis/endianconv.h diff --git a/redis/intset.c b/src/redis/intset.c similarity index 100% rename from redis/intset.c rename to src/redis/intset.c diff --git a/redis/intset.h b/src/redis/intset.h similarity index 100% rename from redis/intset.h rename to src/redis/intset.h diff --git a/redis/listpack.c b/src/redis/listpack.c similarity index 100% rename from redis/listpack.c rename to src/redis/listpack.c diff --git a/redis/listpack.h b/src/redis/listpack.h similarity index 100% rename from redis/listpack.h rename to src/redis/listpack.h diff --git a/redis/lzf.h b/src/redis/lzf.h similarity index 100% rename from redis/lzf.h rename to src/redis/lzf.h diff --git a/redis/lzfP.h b/src/redis/lzfP.h similarity index 100% rename from redis/lzfP.h rename to src/redis/lzfP.h diff --git a/redis/lzf_c.c b/src/redis/lzf_c.c similarity index 100% rename from redis/lzf_c.c rename to src/redis/lzf_c.c diff --git a/redis/lzf_d.c b/src/redis/lzf_d.c similarity index 100% rename from redis/lzf_d.c rename to src/redis/lzf_d.c diff --git a/redis/mt19937-64.c b/src/redis/mt19937-64.c similarity index 100% rename from redis/mt19937-64.c rename to src/redis/mt19937-64.c diff --git a/redis/mt19937-64.h b/src/redis/mt19937-64.h similarity index 100% rename from redis/mt19937-64.h rename to src/redis/mt19937-64.h diff --git a/redis/object.c b/src/redis/object.c similarity index 100% rename from redis/object.c rename to src/redis/object.c diff --git a/redis/object.h b/src/redis/object.h similarity index 100% rename from redis/object.h rename to src/redis/object.h diff --git a/redis/quicklist.c b/src/redis/quicklist.c similarity index 100% rename from redis/quicklist.c rename to src/redis/quicklist.c diff --git a/redis/quicklist.h b/src/redis/quicklist.h similarity index 100% rename from redis/quicklist.h rename to src/redis/quicklist.h diff --git a/redis/rdb.h b/src/redis/rdb.h similarity index 100% rename from redis/rdb.h rename to src/redis/rdb.h diff --git a/redis/redis_aux.c b/src/redis/redis_aux.c similarity index 100% rename from redis/redis_aux.c rename to src/redis/redis_aux.c diff --git a/redis/redis_aux.h b/src/redis/redis_aux.h similarity index 100% rename from redis/redis_aux.h rename to src/redis/redis_aux.h diff --git a/redis/sds.c b/src/redis/sds.c similarity index 100% rename from redis/sds.c rename to src/redis/sds.c diff --git a/redis/sds.h b/src/redis/sds.h similarity index 100% rename from redis/sds.h rename to src/redis/sds.h diff --git a/redis/sdsalloc.h b/src/redis/sdsalloc.h similarity index 100% rename from redis/sdsalloc.h rename to src/redis/sdsalloc.h diff --git a/redis/sha256.c b/src/redis/sha256.c similarity index 100% rename from redis/sha256.c rename to src/redis/sha256.c diff --git a/redis/sha256.h b/src/redis/sha256.h similarity index 100% rename from redis/sha256.h rename to src/redis/sha256.h diff --git a/redis/siphash.c b/src/redis/siphash.c similarity index 100% rename from redis/siphash.c rename to src/redis/siphash.c diff --git a/redis/t_zset.c b/src/redis/t_zset.c similarity index 100% rename from redis/t_zset.c rename to src/redis/t_zset.c diff --git a/redis/util.c b/src/redis/util.c similarity index 100% rename from redis/util.c rename to src/redis/util.c diff --git a/redis/util.h b/src/redis/util.h similarity index 100% rename from redis/util.h rename to src/redis/util.h diff --git a/redis/zmalloc.c b/src/redis/zmalloc.c similarity index 100% rename from redis/zmalloc.c rename to src/redis/zmalloc.c diff --git a/redis/zmalloc.h b/src/redis/zmalloc.h similarity index 100% rename from redis/zmalloc.h rename to src/redis/zmalloc.h diff --git a/redis/zmalloc_mi.c b/src/redis/zmalloc_mi.c similarity index 100% rename from redis/zmalloc_mi.c rename to src/redis/zmalloc_mi.c diff --git a/redis/zset.h b/src/redis/zset.h similarity index 100% rename from redis/zset.h rename to src/redis/zset.h diff --git a/server/CMakeLists.txt b/src/server/CMakeLists.txt similarity index 100% rename from server/CMakeLists.txt rename to src/server/CMakeLists.txt diff --git a/server/command_registry.cc b/src/server/command_registry.cc similarity index 100% rename from server/command_registry.cc rename to src/server/command_registry.cc diff --git a/server/command_registry.h b/src/server/command_registry.h similarity index 100% rename from server/command_registry.h rename to src/server/command_registry.h diff --git a/server/common.cc b/src/server/common.cc similarity index 100% rename from server/common.cc rename to src/server/common.cc diff --git a/server/common_types.h b/src/server/common_types.h similarity index 100% rename from server/common_types.h rename to src/server/common_types.h diff --git a/server/config_flags.cc b/src/server/config_flags.cc similarity index 100% rename from server/config_flags.cc rename to src/server/config_flags.cc diff --git a/server/config_flags.h b/src/server/config_flags.h similarity index 100% rename from server/config_flags.h rename to src/server/config_flags.h diff --git a/server/conn_context.cc b/src/server/conn_context.cc similarity index 100% rename from server/conn_context.cc rename to src/server/conn_context.cc diff --git a/server/conn_context.h b/src/server/conn_context.h similarity index 100% rename from server/conn_context.h rename to src/server/conn_context.h diff --git a/server/db_slice.cc b/src/server/db_slice.cc similarity index 100% rename from server/db_slice.cc rename to src/server/db_slice.cc diff --git a/server/db_slice.h b/src/server/db_slice.h similarity index 100% rename from server/db_slice.h rename to src/server/db_slice.h diff --git a/server/debugcmd.cc b/src/server/debugcmd.cc similarity index 100% rename from server/debugcmd.cc rename to src/server/debugcmd.cc diff --git a/server/debugcmd.h b/src/server/debugcmd.h similarity index 100% rename from server/debugcmd.h rename to src/server/debugcmd.h diff --git a/server/detail/table.h b/src/server/detail/table.h similarity index 100% rename from server/detail/table.h rename to src/server/detail/table.h diff --git a/server/dfly_main.cc b/src/server/dfly_main.cc similarity index 100% rename from server/dfly_main.cc rename to src/server/dfly_main.cc diff --git a/server/dragonfly_connection.cc b/src/server/dragonfly_connection.cc similarity index 100% rename from server/dragonfly_connection.cc rename to src/server/dragonfly_connection.cc diff --git a/server/dragonfly_connection.h b/src/server/dragonfly_connection.h similarity index 100% rename from server/dragonfly_connection.h rename to src/server/dragonfly_connection.h diff --git a/server/dragonfly_listener.cc b/src/server/dragonfly_listener.cc similarity index 100% rename from server/dragonfly_listener.cc rename to src/server/dragonfly_listener.cc diff --git a/server/dragonfly_listener.h b/src/server/dragonfly_listener.h similarity index 100% rename from server/dragonfly_listener.h rename to src/server/dragonfly_listener.h diff --git a/server/dragonfly_test.cc b/src/server/dragonfly_test.cc similarity index 100% rename from server/dragonfly_test.cc rename to src/server/dragonfly_test.cc diff --git a/server/engine_shard_set.cc b/src/server/engine_shard_set.cc similarity index 100% rename from server/engine_shard_set.cc rename to src/server/engine_shard_set.cc diff --git a/server/engine_shard_set.h b/src/server/engine_shard_set.h similarity index 100% rename from server/engine_shard_set.h rename to src/server/engine_shard_set.h diff --git a/server/error.h b/src/server/error.h similarity index 100% rename from server/error.h rename to src/server/error.h diff --git a/server/generic_family.cc b/src/server/generic_family.cc similarity index 100% rename from server/generic_family.cc rename to src/server/generic_family.cc diff --git a/server/generic_family.h b/src/server/generic_family.h similarity index 100% rename from server/generic_family.h rename to src/server/generic_family.h diff --git a/server/generic_family_test.cc b/src/server/generic_family_test.cc similarity index 100% rename from server/generic_family_test.cc rename to src/server/generic_family_test.cc diff --git a/server/global_state.h b/src/server/global_state.h similarity index 100% rename from server/global_state.h rename to src/server/global_state.h diff --git a/server/list_family.cc b/src/server/list_family.cc similarity index 100% rename from server/list_family.cc rename to src/server/list_family.cc diff --git a/server/list_family.h b/src/server/list_family.h similarity index 100% rename from server/list_family.h rename to src/server/list_family.h diff --git a/server/list_family_test.cc b/src/server/list_family_test.cc similarity index 100% rename from server/list_family_test.cc rename to src/server/list_family_test.cc diff --git a/server/main_service.cc b/src/server/main_service.cc similarity index 100% rename from server/main_service.cc rename to src/server/main_service.cc diff --git a/server/main_service.h b/src/server/main_service.h similarity index 100% rename from server/main_service.h rename to src/server/main_service.h diff --git a/server/memcache_parser.cc b/src/server/memcache_parser.cc similarity index 100% rename from server/memcache_parser.cc rename to src/server/memcache_parser.cc diff --git a/server/memcache_parser.h b/src/server/memcache_parser.h similarity index 100% rename from server/memcache_parser.h rename to src/server/memcache_parser.h diff --git a/server/memcache_parser_test.cc b/src/server/memcache_parser_test.cc similarity index 100% rename from server/memcache_parser_test.cc rename to src/server/memcache_parser_test.cc diff --git a/server/rdb_load.cc b/src/server/rdb_load.cc similarity index 100% rename from server/rdb_load.cc rename to src/server/rdb_load.cc diff --git a/server/rdb_load.h b/src/server/rdb_load.h similarity index 100% rename from server/rdb_load.h rename to src/server/rdb_load.h diff --git a/server/rdb_save.cc b/src/server/rdb_save.cc similarity index 100% rename from server/rdb_save.cc rename to src/server/rdb_save.cc diff --git a/server/rdb_save.h b/src/server/rdb_save.h similarity index 100% rename from server/rdb_save.h rename to src/server/rdb_save.h diff --git a/server/rdb_test.cc b/src/server/rdb_test.cc similarity index 100% rename from server/rdb_test.cc rename to src/server/rdb_test.cc diff --git a/server/redis_parser.cc b/src/server/redis_parser.cc similarity index 100% rename from server/redis_parser.cc rename to src/server/redis_parser.cc diff --git a/server/redis_parser.h b/src/server/redis_parser.h similarity index 100% rename from server/redis_parser.h rename to src/server/redis_parser.h diff --git a/server/redis_parser_test.cc b/src/server/redis_parser_test.cc similarity index 100% rename from server/redis_parser_test.cc rename to src/server/redis_parser_test.cc diff --git a/server/replica.cc b/src/server/replica.cc similarity index 100% rename from server/replica.cc rename to src/server/replica.cc diff --git a/server/replica.h b/src/server/replica.h similarity index 100% rename from server/replica.h rename to src/server/replica.h diff --git a/server/reply_builder.cc b/src/server/reply_builder.cc similarity index 100% rename from server/reply_builder.cc rename to src/server/reply_builder.cc diff --git a/server/reply_builder.h b/src/server/reply_builder.h similarity index 100% rename from server/reply_builder.h rename to src/server/reply_builder.h diff --git a/server/script_mgr.cc b/src/server/script_mgr.cc similarity index 100% rename from server/script_mgr.cc rename to src/server/script_mgr.cc diff --git a/server/script_mgr.h b/src/server/script_mgr.h similarity index 100% rename from server/script_mgr.h rename to src/server/script_mgr.h diff --git a/server/server_family.cc b/src/server/server_family.cc similarity index 100% rename from server/server_family.cc rename to src/server/server_family.cc diff --git a/server/server_family.h b/src/server/server_family.h similarity index 100% rename from server/server_family.h rename to src/server/server_family.h diff --git a/server/server_state.h b/src/server/server_state.h similarity index 100% rename from server/server_state.h rename to src/server/server_state.h diff --git a/server/snapshot.cc b/src/server/snapshot.cc similarity index 100% rename from server/snapshot.cc rename to src/server/snapshot.cc diff --git a/server/snapshot.h b/src/server/snapshot.h similarity index 100% rename from server/snapshot.h rename to src/server/snapshot.h diff --git a/server/string_family.cc b/src/server/string_family.cc similarity index 100% rename from server/string_family.cc rename to src/server/string_family.cc diff --git a/server/string_family.h b/src/server/string_family.h similarity index 100% rename from server/string_family.h rename to src/server/string_family.h diff --git a/server/string_family_test.cc b/src/server/string_family_test.cc similarity index 100% rename from server/string_family_test.cc rename to src/server/string_family_test.cc diff --git a/server/table.h b/src/server/table.h similarity index 100% rename from server/table.h rename to src/server/table.h diff --git a/server/test_utils.cc b/src/server/test_utils.cc similarity index 100% rename from server/test_utils.cc rename to src/server/test_utils.cc diff --git a/server/test_utils.h b/src/server/test_utils.h similarity index 100% rename from server/test_utils.h rename to src/server/test_utils.h diff --git a/server/testdata/empty.rdb b/src/server/testdata/empty.rdb similarity index 100% rename from server/testdata/empty.rdb rename to src/server/testdata/empty.rdb diff --git a/server/testdata/small.rdb b/src/server/testdata/small.rdb similarity index 100% rename from server/testdata/small.rdb rename to src/server/testdata/small.rdb diff --git a/server/transaction.cc b/src/server/transaction.cc similarity index 100% rename from server/transaction.cc rename to src/server/transaction.cc diff --git a/server/transaction.h b/src/server/transaction.h similarity index 100% rename from server/transaction.h rename to src/server/transaction.h diff --git a/tools/docker/Dockerfile.alpine-prod b/tools/docker/Dockerfile.alpine-prod new file mode 100644 index 000000000..d50ed9e97 --- /dev/null +++ b/tools/docker/Dockerfile.alpine-prod @@ -0,0 +1,28 @@ +# syntax=docker/dockerfile:1 +from ghcr.io/romange/alpine-dev as builder + +WORKDIR /build +COPY src/ ./src/ +COPY helio/ ./helio/ +COPY patches/ ./patches/ +COPY CMakeLists.txt ./ +RUN ./helio/blaze.sh -release + +WORKDIR build-opt +RUN ninja dragonfly + +FROM alpine:latest +RUN addgroup -S -g 1000 dfly && adduser -S -G dfly -u 999 dfly +RUN apk --no-cache add libgcc libstdc++ libunwind boost1.77-fiber \ + 'su-exec>=0.2' + +RUN mkdir /data && chown dfly:dfly /data +VOLUME /data +WORKDIR /data +COPY tools/docker/alpine-entry.sh /usr/local/bin/entrypoint.sh +COPY --from=builder /build/build-opt/dragonfly /usr/local/bin/ + +ENTRYPOINT ["entrypoint.sh"] + +EXPOSE 6380 +CMD ["dragonfly"] \ No newline at end of file diff --git a/tools/docker/alpine-entry.sh b/tools/docker/alpine-entry.sh new file mode 100755 index 000000000..2d1546ff6 --- /dev/null +++ b/tools/docker/alpine-entry.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +# first arg is `--some-option` +if [ "${1#-}" != "$1" ]; then + set -- dragonfly "$@" +fi + +# allow the docker container to be started with `--user` +if [ "$1" = 'dragonfly' -a "$(id -u)" = '0' ]; then + exec su-exec dfly "$0" "$@" # runs this script under user dfly +fi + +exec "$@"